Skip to main content



      Home
Home » Eclipse Projects » Trace Compass » Trace Compass is blocking the C project Build
Trace Compass is blocking the C project Build [message #1783863] Mon, 19 March 2018 12:54 Go to next message
Eclipse UserFriend
Hello,

I am using trace compass 3.2.0 plugins as part of development.
Trace Compass Nature is added to Custom C project.
When ever is C project Build is initiated "Waiting for User Operation" is blocking the UI.
After initial Analysis I found that it is coming from TmfProjectRegistry.java
from below code
if (delta.getKind() == IResourceDelta.CHANGED &&
project.isOpen() && project.hasNature(TmfProjectNature.ID)) {
// If shadow project exists, handle resource change in the shadow project
if (TmfProjectModelHelper.shadowProjectAccessible(project)) {
handeParentProjectRefresh(project);
return;
}

Can you please help me in this to avoid UI blocking.
Re: Trace Compass is blocking the C project Build [message #1783865 is a reply to message #1783863] Mon, 19 March 2018 13:19 Go to previous messageGo to next message
Eclipse UserFriend
Hi Raghava,

Could you provide the output of jstack when this blocking is happening?

It's possible that this is fixed in Trace Compass 3.3, with the stack we should be able to verify.

Thank you,
Patrick
Re: Trace Compass is blocking the C project Build [message #1783866 is a reply to message #1783865] Mon, 19 March 2018 13:27 Go to previous messageGo to next message
Eclipse UserFriend
Hello Patrick,

Thanks for Quick reply.
Looks like UI thread gets initiated for refreshing Parent project before completing the build.
TmfProjectRegistry.handeParentProjectRefresh ()

Is there a way to delay/wait this thread until build completes.

"main" #1 prio=6 os_prio=0 tid=0x00007f4db8015800 nid=0x7289 in Object.wait() [0x00007f4dbe389000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.ThreadJob.waitForRun(ThreadJob.java:272)
- locked <0x00000006c7006318> (a java.lang.Object)
at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:197)
at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:92)
at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:307)
at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:121)
at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2188)
at org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:1586)
at org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectRegistry.lambda$4(TmfProjectRegistry.java:563)
at org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectRegistry$$Lambda$138/886331424.run(Unknown Source)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
- locked <0x000000076f3212b8> (a org.eclipse.swt.widgets.RunnableLock)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4536)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4154)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693)

Thanks,
Raghava Rao
Re: Trace Compass is blocking the C project Build [message #1783880 is a reply to message #1783866] Mon, 19 March 2018 15:30 Go to previous message
Eclipse UserFriend
This should be fixed with
https://bugs.eclipse.org/bugs/show_bug.cgi?id=528917
https://git.eclipse.org/r/#/c/113675/

That fix will be included in Trace Compass 3.3 that should be released this Wednesday.

If you notice other similar issues in the future, include all threads from the jstack so we can see which other thread is holding a workspace lock and waiting on the main thread (or just the main thread and that thread if you can figure out which one it is...).
Previous Topic:Network Tracing - Adding a new protocol
Next Topic:Cache issue in XmlTimeGraphView
Goto Forum:
  


Current Time: Fri May 16 01:05:58 EDT 2025

Powered by FUDForum. Page generated in 0.07154 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top