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

Hey Brian,

unfortunately I am not able to reproduce this locally, so the only way for me to debug this is to enable logging on the remote site, ask for thread dumps, etc. Is there a way to enable more detailed debug output that could help with this?

Thanks a lot for your help!
-Martin



> 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
> 
> _______________________________________________
> 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