| Summary: | Implicit Jobs (ThreadJobs) in some circumstances are automatically run twice. Resuming from a yieldRule() cause jobs to be rescheduled. Job.schedule() should have no effect for ThreadJob. Job.yieldRule() for ThreadJob does not find blocked explicit Jobs. | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Min Idzelis <min123> | ||||||||
| Component: | Runtime | Assignee: | John Arthorne <john.arthorne> | ||||||||
| Status: | RESOLVED FIXED | QA Contact: | |||||||||
| Severity: | normal | ||||||||||
| Priority: | P3 | CC: | john.arthorne, tjwatson | ||||||||
| Version: | 3.6 | Flags: | john.arthorne:
review+
tjwatson: review+ dj.houghton: review+ |
||||||||
| Target Milestone: | 3.6 RC2 | ||||||||||
| Hardware: | PC | ||||||||||
| OS: | Windows XP | ||||||||||
| Whiteboard: | |||||||||||
| Attachments: |
|
||||||||||
|
Description
Min Idzelis
Created attachment 167837 [details]
Fix v1
Fixes
Created attachment 167838 [details]
Regression Junits
I agree the fix is needed and this fix looks good. In particular I like that the fix only touches the yield implementation which is new this release, so doesn't risk wider regressions. The only exception is the fix for 3), which involves adding a shouldRun method to ThreadJob. This is an existing bug and it seems someone calling currentJob().schedule() is unlikely, but I agree we should fix it. Having multiple ThreadJobs for a given thread at once is quite likely to cause other bugs outside the yield implementation. I'd like to put this in for RC1 but I'm afraid I have left this too late and won't be able to find another reviewer in time. If not I will track down reviewers and make sure it gets into RC2. Tom, I can talk to you about this tomorrow. Created attachment 168468 [details]
Updated tests
Updated tests to avoid side-effects that cause other tests to fail.
Fix and tests released. Thanks all. |