Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-core-dev] debugging blocking jobs

I’d guess that the linked list of jobs has somehow become corrupt so that the while loop has turned into an infinite loop.  Perhaps the same job is being added twice?

final void addLast(InternalJob entry) {
InternalJob last = this;
//find the end of the queue
while (last.previous != null)
last = last.previous;
//add the new entry to the end of the queue
last.previous = entry;
entry.next = last;
entry.previous = null;
}

Is it reproducible?  Could you put some conditional breakpoints for when ‘last == last.previous’, and some watchpoints so that previous and next are never set to the same object?

Brian.

On 22-Sep-2014, at 10:39 AM, Martin Lippert <mlippert@xxxxxxxxx> wrote:

Hey!

I have a question around debugging problems with jobs. I got a number of thread dumps from users reporting freezes in Eclipse/STS, but I have difficulties identifying the issue from looking at the thread dumps and I wonder if you have an idea how to investigate those issues.

Suspicious (to me) is that there is a thread in this state:

"Worker-343" prio=6 tid=0x000000002d791800 nid=0x19cc runnable [0x0000000039dbf000]
  java.lang.Thread.State: RUNNABLE
at org.eclipse.core.internal.jobs.InternalJob.addLast(InternalJob.java:171)
at org.eclipse.core.internal.jobs.JobManager.nextJob(JobManager.java:1025)
- locked <0x00000005f0191fb8> (a java.lang.Object)
at org.eclipse.core.internal.jobs.JobManager.startJob(JobManager.java:1519)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:221)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

  Locked ownable synchronizers:
- None

While other threads are blocked because of this lock (for example the main UI thread):

"main" prio=6 tid=0x0000000002bcd800 nid=0x2284 waiting for monitor entry [0x000000000012e000]
  java.lang.Thread.State: BLOCKED (on object monitor)
at org.eclipse.core.internal.jobs.JobManager.doSchedule(JobManager.java:532)
- waiting to lock <0x00000005f0191fb8> (a java.lang.Object)
at org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:1161)
at org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:430)
at org.eclipse.core.runtime.jobs.Job.schedule(Job.java:500)
at org.eclipse.ui.internal.navigator.actions.LinkEditorAction.activateEditor(LinkEditorAction.java:225)


However, I have no idea how to find out that is really going on here. I there a good way to analyze this?

Thanks a lot for your help!
-Martin


_______________________________________________
platform-core-dev mailing list
platform-core-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-core-dev


Back to the top