Bug 550982 - Job.yieldRule never completes
Summary: Job.yieldRule never completes
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Runtime (show other bugs)
Version: 4.7.2   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: platform-runtime-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-09-11 12:07 EDT by Rafael Chaves CLA
Modified: 2019-09-11 12:07 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rafael Chaves CLA 2019-09-11 12:07:18 EDT
Sometimes, it seems invoking yieldRule() from a running job may freeze the job forever. No steps, but a memory dump showed the job in question is in the YIELDING state (64), here is the stack trace: 


"Worker-28" #343 prio=5 os_prio=0 tid=0x000000001f91d800 nid=0x4560 in Object.wait() [0x00000000483be000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at org.eclipse.core.internal.jobs.JobManager.waitForUnblocked(JobManager.java:1558)
        - locked <0x00000000fca7f0f0> (a java.lang.Object)
        at org.eclipse.core.internal.jobs.JobManager.yieldRule(JobManager.java:1483)
        at org.eclipse.core.internal.jobs.InternalJob.yieldRule(InternalJob.java:527)
        at org.eclipse.core.runtime.jobs.Job.yieldRule(Job.java:936)
...
        at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:724)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2240)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2267)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:5660)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:5617)
...
        at acme.MyJob.run(MyJob.java:301)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)