Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 357518 - [LTTng] Deadlock when switching experiments
Summary: [LTTng] Deadlock when switching experiments
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: LinuxTools (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Bernd Hufmann CLA
QA Contact: Francois Chouinard CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-13 12:37 EDT by Bernd Hufmann CLA
Modified: 2022-01-13 14:52 EST (History)
0 users

See Also:


Attachments
stack trace of deadlock (3.93 KB, text/plain)
2011-09-13 12:37 EDT, Bernd Hufmann CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bernd Hufmann CLA 2011-09-13 12:37:40 EDT
Created attachment 203263 [details]
stack trace of deadlock

I detected this problem when using the source code from master branch, commit "Fix for bug357396", SHA 257bf5dc883804a142cbaa80b6d7c94f0402fe24.

When switching experiments I noticed a thread deadlock (i.e. the Eclipse GUI froze). This deadlock is (as usual) time dependent and happens only in certain conditions. I collected the stack trace from the debug perspective of Eclipse. I attached the stack trace. The stack trace shows that the thread [main] owns monitor LTTngExperiment<T> (id=167) and waits for monitor Object (id=165). The tread [Streaming Monitor for ust2_server] owns monitor Object (id=165) and waits for monitor LTTngExperiment<T> (id=167). This is the classical deadlock situation where two threads accessing 2 different monitors in the reverse order.

The stack trace shows the relevant lines of code where the monitors are acquired.

To reproduce, keep switching quickly experiments till it happens.
Comment 1 Bernd Hufmann CLA 2012-07-19 07:50:20 EDT
The problem described in the bug report is not an issue anymore. The class LTTngExperiment was removed when introducing the support of the Common Navigator Framework. LTTng (legacy) is now using the standard TmfExperiment class. 

I'll close the bug.