Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 317808

Summary: Deadlock when rebuilding project
Product: z_Archived Reporter: Mikko Tiihonen <mikko.tiihonen>
Component: IAMAssignee: Project Inbox <iam.Core-inbox>
Status: CLOSED FIXED QA Contact:
Severity: critical    
Priority: P3 CC: carlos.sanchez
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
Full stack trace none

Description Mikko Tiihonen CLA 2010-06-24 08:55:58 EDT
Build Identifier: I20100608-0911

Helios final release, IAM 0.12.0.201006091726

There are only two threads doing something and both are stuck in logging. I suspect they have blocked each other out.

"Worker-9" prio=10 tid=0x00007fffd4b01800 nid=0x380d in Object.wait() [0x00007fffd8f76000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00002aaae94716a0> (a org.eclipse.ui.internal.Semaphore)
        at org.eclipse.ui.internal.Semaphore.acquire(Semaphore.java:43)
        - locked <0x00002aaae94716a0> (a org.eclipse.ui.internal.Semaphore)
        at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:168)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:4294)
        at org.eclipse.iam.ui.views.MavenEventView.updateView(MavenEventView.java:305)
        at org.eclipse.iam.ui.views.MavenEventView.update(MavenEventView.java:299)
        at java.util.Observable.notifyObservers(Observable.java:159)
        at org.eclipse.iam.ui.views.MavenEventStore.notifyListeners(MavenEventStore.java:85)
        at org.eclipse.iam.ui.views.MavenEventStore.handleEvent(MavenEventStore.java:52)
        at org.eclipse.iam.core.embedder.internal.EclipseMavenEventPropagator.notifyListeners(EclipseMavenEventPropagator.java:40)
        - locked <0x00002aaabbed43d8> (a java.util.HashSet)
        at org.eclipse.iam.core.embedder.internal.EclipseMavenEventPropagator.log(EclipseMavenEventPropagator.java:119)
        at org.eclipse.iam.core.embedder.internal.EclipseMavenEventPropagator.info(EclipseMavenEventPropagator.java:139)
        at org.eclipse.iam.core.embedder.internal.EclipseMavenEventPropagator.info(EclipseMavenEventPropagator.java:134)
        at org.apache.maven.embedder.PlexusLoggerAdapter.info(PlexusLoggerAdapter.java:54)
        at org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.resolve(DefaultRepositoryMetadataManager.java:83)

"main" prio=10 tid=0x0000000000613800 nid=0x738e waiting for monitor entry [0x00007ffff7fd0000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.eclipse.iam.core.embedder.internal.EclipseMavenEventPropagator.notifyListeners(EclipseMavenEventPropagator.java:36)
        - waiting to lock <0x00002aaabbed43d8> (a java.util.HashSet)
        at org.eclipse.iam.core.embedder.internal.EclipseMavenEventPropagator.log(EclipseMavenEventPropagator.java:119)
        at org.eclipse.iam.core.embedder.internal.EclipseMavenEventPropagator.debug(EclipseMavenEventPropagator.java:129)
        at org.eclipse.iam.core.embedder.internal.EclipseMavenEventPropagator.debug(EclipseMavenEventPropagator.java:124)
        at org.apache.maven.embedder.PlexusLoggerAdapter.debug(PlexusLoggerAdapter.java:38)
        at org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.resolve(DefaultRepositoryMetadataManager.java:88)


Reproducible: Sometimes

Steps to Reproduce:
1. Create two maven projects
2. Choose clean full project on both
3. choose reload maven on both
Comment 1 Mikko Tiihonen CLA 2010-06-24 08:56:41 EDT
Created attachment 172598 [details]
Full stack trace
Comment 2 Carlos Sanchez CLA 2010-07-14 12:12:44 EDT
Fixed using ConcurrentHashMap. Deployed new 0.12 build at http://q4e.googlecode.com/svn/trunk/updatesite-dev, please test
Comment 3 Mikko Tiihonen CLA 2010-07-20 03:51:05 EDT
Confirming fixed. Deadlocks where almost daily before the fix.
Now already 3 working days without any deadlocks.