This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 145165 - dead lock in repository
Summary: dead lock in repository
Status: RESOLVED WORKSFORME
Alias: None
Product: cnd
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Alexander Simon
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-08-26 15:31 UTC by Vladimir Voskresensky
Modified: 2008-08-28 06:42 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Voskresensky 2008-08-26 15:31:15 UTC
Full thread dump Java HotSpot(TM) Server VM (10.0-b23 mixed mode):

"Inactive RequestProcessor thread [Was:AnnotationHolder/org.netbeans.modules.editor.hints.AnnotationHolder$2$2]" daemon
prio=3 tid=0x099b7000 nid=0x58 in Object.wait() [0xc43ff000..0xc43ff970]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xf81be308> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:950)
        - locked <0xf81be308> (a java.lang.Object)

"Default RequestProcessor" daemon prio=3 tid=0x099b9000 nid=0x57 waiting for monitor entry [0xc47ff000..0xc47ff8f0]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1180)
        - waiting to lock <0xdbebdbe8> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1155)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.addToQueue(ProjectImpl.java:159)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.access$000(ProjectImpl.java:68)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl$2.run(ProjectImpl.java:371)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Inactive RequestProcessor thread [Was:Default
RequestProcessor/org.netbeans.modules.editor.errorstripe.AnnotationView$RepaintTask]" daemon prio=3 tid=0x099b8800
nid=0x56 in Object.wait() [0xc4bff000..0xc4bffc70]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xf7eb1088> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:950)
        - locked <0xf7eb1088> (a java.lang.Object)

"Code Model Request Processor: External File Updater" daemon prio=3 tid=0x099bd800 nid=0x55 waiting on condition
[0xc4fff000..0xc4fffbf0]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0xdbdd9958> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:877)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1197)
        at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:594)
        at org.netbeans.modules.cnd.repository.disk.MemoryCache.get(MemoryCache.java:112)
        at org.netbeans.modules.cnd.repository.disk.UnitImpl.get(UnitImpl.java:87)
        at org.netbeans.modules.cnd.repository.disk.DiskRepositoryManager.get(DiskRepositoryManager.java:173)
        at org.netbeans.modules.cnd.repository.impl.DelegateRepository.get(DelegateRepository.java:85)
        at org.netbeans.modules.cnd.modelimpl.repository.RepositoryUtils.get(RepositoryUtils.java:105)
        at org.netbeans.modules.cnd.modelimpl.repository.RepositoryUtils.get(RepositoryUtils.java:82)
        at org.netbeans.modules.cnd.modelimpl.uid.KeyBasedUID.getObject(KeyBasedUID.java:68)
        at org.netbeans.modules.cnd.modelimpl.uid.KeyBasedUID.getObject(KeyBasedUID.java:59)
        at org.netbeans.modules.cnd.modelimpl.uid.UIDCsmConverter.UIDtoProject(UIDCsmConverter.java:110)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ModelImpl.obj2Project(ModelImpl.java:125)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ModelImpl.findProject(ModelImpl.java:117)
        - locked <0xdbd48c58> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ModelImpl.getProject(ModelImpl.java:137)
        at org.netbeans.modules.cnd.modelutil.CsmUtilities.getCsmFiles(CsmUtilities.java:332)
        at org.netbeans.modules.cnd.modelutil.CsmUtilities.getCsmFiles(CsmUtilities.java:351)
        at org.netbeans.modules.cnd.modelimpl.platform.ModelSupport$ExternalUpdateListener.run(ModelSupport.java:681)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ModelImpl$3.run(ModelImpl.java:360)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Default RequestProcessor" daemon prio=3 tid=0x089b1c00 nid=0x54 waiting for monitor entry [0xc53ff000..0xc53ffb70]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1180)
        - waiting to lock <0xdbebdbe8> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1155)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.addToQueue(ProjectImpl.java:159)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.access$000(ProjectImpl.java:68)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl$2.run(ProjectImpl.java:371)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Module-Actions" daemon prio=3 tid=0x09527400 nid=0x53 waiting on condition [0xc57ff000..0xc57ffaf0]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0xdbdd9958> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:877)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1197)
        at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:594)
        at org.netbeans.modules.cnd.repository.disk.MemoryCache.get(MemoryCache.java:112)
        at org.netbeans.modules.cnd.repository.disk.UnitImpl.get(UnitImpl.java:87)
        at org.netbeans.modules.cnd.repository.disk.DiskRepositoryManager.get(DiskRepositoryManager.java:173)
        at org.netbeans.modules.cnd.repository.impl.DelegateRepository.get(DelegateRepository.java:85)
        at org.netbeans.modules.cnd.modelimpl.repository.RepositoryUtils.get(RepositoryUtils.java:105)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectBase.getFileContainer(ProjectBase.java:2108)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectBase.getFile(ProjectBase.java:1237)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.onFileEditEnd(ProjectImpl.java:137)
        at
org.netbeans.modules.cnd.modelimpl.platform.ModelSupport$ModifiedObjectsChangeListener.stateChanged(ModelSupport.java:603)
        at org.openide.util.ChangeSupport.fireChange(ChangeSupport.java:123)
        at org.openide.util.ChangeSupport.fireChange(ChangeSupport.java:109)
        at org.openide.loaders.DataObject$ModifiedRegistry.remove(DataObject.java:1207)
        at java.util.Collections$SynchronizedCollection.remove(Collections.java:1580)
        - locked <0xdaf5c848> (a java.util.Collections$SynchronizedSet)
        at org.openide.loaders.DataObject.setModified(DataObject.java:442)
        at org.openide.text.DataEditorSupport$Env.unmarkModified(DataEditorSupport.java:776)
        at org.openide.text.CloneableEditorSupport.notifyUnmodified(CloneableEditorSupport.java:1661)
        at org.netbeans.modules.cnd.loaders.CppEditorSupport.notifyUnmodified(CppEditorSupport.java:144)
        at org.openide.text.CloneableEditorSupport.callNotifyUnmodified(CloneableEditorSupport.java:1701)
        at org.openide.text.CloneableEditorSupport$1SaveAsReader.after(CloneableEditorSupport.java:915)
        at org.openide.text.CloneableEditorSupport.saveDocument(CloneableEditorSupport.java:932)
        at org.openide.text.DataEditorSupport.saveDocument(DataEditorSupport.java:424)
        at org.netbeans.modules.cnd.loaders.CppEditorSupport$2.save(CppEditorSupport.java:101)
        at org.netbeans.core.NbTopManager.saveAll(NbTopManager.java:284)
        at org.netbeans.core.NbTopManager.access$300(NbTopManager.java:91)
        at org.netbeans.core.NbTopManager$NbLifecycleManager.saveAll(NbTopManager.java:438)
        at org.openide.actions.SaveAllAction.performAction(SaveAllAction.java:111)
        at org.openide.util.actions.CallableSystemAction$1.run(CallableSystemAction.java:118)
        at org.netbeans.modules.openide.util.ActionsBridge$ActionRunnable.actionPerformed(ActionsBridge.java:111)
        at org.netbeans.core.ModuleActions.invokeAction(ModuleActions.java:104)
        at org.netbeans.modules.openide.actions.ActionsBridgeImpl.invokeAction(ActionsBridgeImpl.java:52)
        at org.netbeans.modules.openide.util.ActionsBridge$ActionRunnable.doRun(ActionsBridge.java:102)
        at org.netbeans.modules.openide.util.ActionsBridge$1.run(ActionsBridge.java:71)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Default RequestProcessor" daemon prio=3 tid=0x0c1f9400 nid=0x52 waiting for monitor entry [0xc5bff000..0xc5bffa70]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1180)
        - waiting to lock <0xdbebdbe8> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1155)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.addToQueue(ProjectImpl.java:159)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.access$000(ProjectImpl.java:68)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl$2.run(ProjectImpl.java:371)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Default RequestProcessor" daemon prio=3 tid=0x09115400 nid=0x51 waiting for monitor entry [0xc5fff000..0xc5fff9f0]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1180)
        - waiting to lock <0xdbebdbe8> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1155)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.addToQueue(ProjectImpl.java:159)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.access$000(ProjectImpl.java:68)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl$2.run(ProjectImpl.java:371)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Default RequestProcessor" daemon prio=3 tid=0x0dfc8800 nid=0x50 waiting for monitor entry [0xc8fff000..0xc8fff970]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1180)
        - waiting to lock <0xdbebdbe8> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1155)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.addToQueue(ProjectImpl.java:159)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.access$000(ProjectImpl.java:68)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl$2.run(ProjectImpl.java:371)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Default RequestProcessor" daemon prio=3 tid=0x09038000 nid=0x4f waiting for monitor entry [0xcb3ff000..0xcb3ff8f0]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1180)
        - waiting to lock <0xdbebdbe8> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1155)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.addToQueue(ProjectImpl.java:159)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.access$000(ProjectImpl.java:68)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl$2.run(ProjectImpl.java:371)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"CsmFileTaskFactory" daemon prio=3 tid=0x09039800 nid=0x4e waiting on condition [0xc97ff000..0xc97ffc70]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0xdbdd9958> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:877)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1197)
        at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:594)
        at org.netbeans.modules.cnd.repository.disk.MemoryCache.get(MemoryCache.java:112)
        at org.netbeans.modules.cnd.repository.disk.UnitImpl.get(UnitImpl.java:87)
        at org.netbeans.modules.cnd.repository.disk.DiskRepositoryManager.get(DiskRepositoryManager.java:173)
        at org.netbeans.modules.cnd.repository.impl.DelegateRepository.get(DelegateRepository.java:85)
        at org.netbeans.modules.cnd.modelimpl.repository.RepositoryUtils.get(RepositoryUtils.java:105)
        at org.netbeans.modules.cnd.modelimpl.repository.RepositoryUtils.get(RepositoryUtils.java:82)
        at org.netbeans.modules.cnd.modelimpl.uid.KeyBasedUID.getObject(KeyBasedUID.java:68)
        at org.netbeans.modules.cnd.modelimpl.uid.KeyBasedUID.getObject(KeyBasedUID.java:59)
        at org.netbeans.modules.cnd.modelimpl.uid.UIDCsmConverter.UIDtoProject(UIDCsmConverter.java:110)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl._getProject(FileImpl.java:199)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.isValid(FileImpl.java:1138)
        at org.netbeans.modules.cnd.model.tasks.CsmFileTaskFactory$CsmSafeRunnable.run(CsmFileTaskFactory.java:318)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Default RequestProcessor" daemon prio=3 tid=0x09522800 nid=0x4d in Object.wait() [0xc63ff000..0xc63ffbf0]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdbebdbe8> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1184)
        - locked <0xdbebdbe8> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1155)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.addToQueue(ProjectImpl.java:159)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.access$000(ProjectImpl.java:68)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl$2.run(ProjectImpl.java:371)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"JDWP Command Reader" daemon prio=3 tid=0x097df000 nid=0x4a runnable [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Class View Updater" prio=3 tid=0x09ceb800 nid=0x44 in Object.wait() [0xc67ff000..0xc67ffb70]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdbe9efd8> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.cnd.classview.ClassViewUpdater$BlockingQueue.get(ClassViewUpdater.java:65)
        - locked <0xdbe9efd8> (a java.lang.Object)
        at org.netbeans.modules.cnd.classview.ClassViewUpdater.run(ClassViewUpdater.java:144)

"Default RequestProcessor" daemon prio=3 tid=0x08a60c00 nid=0x39 waiting for monitor entry [0xc6fff000..0xc6fff9f0]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1180)
        - waiting to lock <0xdbebdbe8> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:1155)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.addToQueue(ProjectImpl.java:159)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl.access$000(ProjectImpl.java:68)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectImpl$2.run(ProjectImpl.java:371)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Repository writer 0" daemon prio=3 tid=0x08a62000 nid=0x38 waiting on condition [0xc77ff000..0xc77ff970]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.waitReady(RepositoryWritingThread.java:94)
        at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.run(RepositoryWritingThread.java:128)
        at org.netbeans.modules.cnd.repository.queue.RepositoryThreadManager$Wrapper.run(RepositoryThreadManager.java:84)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Code Model Parser 3" daemon prio=3 tid=0x0c884800 nid=0x36 in Object.wait() [0xc73ff000..0xc73ffc70]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdbdfb818> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:337)
        - locked <0xdbdfb818> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:69)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Code Model Parser 1" daemon prio=3 tid=0x09450800 nid=0x35 in Object.wait() [0xc8bff000..0xc8bffbf0]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdbdfb818> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:337)
        - locked <0xdbdfb818> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:69)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Code Model Parser 0" daemon prio=3 tid=0x0d81d800 nid=0x26 waiting on condition [0xc7bff000..0xc7bffc70]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0xdbdd9958> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:807)
        at org.netbeans.modules.cnd.repository.disk.MemoryCache.hang(MemoryCache.java:89)
        at org.netbeans.modules.cnd.repository.disk.UnitImpl.hang(UnitImpl.java:109)
        at org.netbeans.modules.cnd.repository.disk.DiskRepositoryManager.hang(DiskRepositoryManager.java:149)
        at org.netbeans.modules.cnd.repository.impl.DelegateRepository.hang(DelegateRepository.java:77)
        at org.netbeans.modules.cnd.modelimpl.repository.RepositoryUtils.hang(RepositoryUtils.java:196)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectComponent.put(ProjectComponent.java:85)
        at org.netbeans.modules.cnd.modelimpl.csm.core.DeclarationContainer.removeDeclaration(DeclarationContainer.java:148)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ProjectBase.unregisterDeclaration(ProjectBase.java:395)
        at org.netbeans.modules.cnd.modelimpl.csm.VariableImpl.unregisterInProject(VariableImpl.java:133)
        at org.netbeans.modules.cnd.modelimpl.csm.VariableImpl.dispose(VariableImpl.java:290)
        at org.netbeans.modules.cnd.modelimpl.csm.core.Utils.disposeAll(Utils.java:139)
        at org.netbeans.modules.cnd.modelimpl.csm.ClassImpl._clearMembers(ClassImpl.java:635)
        at org.netbeans.modules.cnd.modelimpl.csm.ClassImpl.dispose(ClassImpl.java:628)
        at org.netbeans.modules.cnd.modelimpl.csm.core.Utils.disposeAll(Utils.java:139)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.disposeAll(FileImpl.java:418)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl._reparse(FileImpl.java:364)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.reparse(FileImpl.java:338)
        - locked <0xdbebdbe8> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.ensureParsed(FileImpl.java:272)
        - locked <0xdbebdbe8> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:90)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Code Model Parser 2" daemon prio=3 tid=0x0c148800 nid=0x25 in Object.wait() [0xc7fff000..0xc7fffbf0]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdbdfb818> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:337)
        - locked <0xdbdfb818> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:69)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"DestroyJavaVM" prio=3 tid=0x08072400 nid=0x2 waiting on condition [0x00000000..0xfe3ffbb0]
   java.lang.Thread.State: RUNNABLE

"AWT-EventQueue-1" prio=3 tid=0x0832ac00 nid=0x20 in Object.wait() [0xc9fff000..0xc9fff970]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdaff4668> (a org.netbeans.core.TimableEventQueue)
        at java.lang.Object.wait(Object.java:485)
        at java.awt.EventQueue.getNextEvent(EventQueue.java:479)
        - locked <0xdaff4668> (a org.netbeans.core.TimableEventQueue)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:245)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

"Thread-2" daemon prio=3 tid=0x09129000 nid=0x1f in Object.wait() [0xc93ff000..0xc93ff8f0]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdb004128> (a java.util.LinkedList)
        at java.lang.Object.wait(Object.java:485)
        at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java:1461)
        - locked <0xdb004128> (a java.util.LinkedList)

"TimerQueue" daemon prio=3 tid=0x086fa400 nid=0x1c in Object.wait() [0xc9bff000..0xc9bffb70]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdabe4000> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(TimerQueue.java:236)
        - locked <0xdabe4000> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Thread.java:619)

"AWT-Shutdown" prio=3 tid=0x0832a000 nid=0x1a in Object.wait() [0xca3ff000..0xca3ffa70]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xda8e3cd0> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
        - locked <0xda8e3cd0> (a java.lang.Object)
        at java.lang.Thread.run(Thread.java:619)

"AWT-XAWT" daemon prio=3 tid=0x08329400 nid=0x19 runnable [0xca7ff000..0xca7ff9f0]
   java.lang.Thread.State: RUNNABLE
        at sun.awt.X11.XToolkit.waitForEvents(Native Method)
        at sun.awt.X11.XToolkit.run(XToolkit.java:544)
        at sun.awt.X11.XToolkit.run(XToolkit.java:519)
        at java.lang.Thread.run(Thread.java:619)

"Java2D Disposer" daemon prio=3 tid=0x0831cc00 nid=0x18 in Object.wait() [0xcabff000..0xcabff970]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdab02e08> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0xdab02e08> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at sun.java2d.Disposer.run(Disposer.java:125)
        at java.lang.Thread.run(Thread.java:619)

"Active Reference Queue Daemon" daemon prio=3 tid=0x0838a000 nid=0x17 in Object.wait() [0xcafff000..0xcafff8f0]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdac05f78> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0xdac05f78> (a java.lang.ref.ReferenceQueue$Lock)
        at org.openide.util.Utilities$ActiveQueue.run(Utilities.java:3076)
        at java.lang.Thread.run(Thread.java:619)

"Poller SunPKCS11-Solaris" daemon prio=3 tid=0x0838bc00 nid=0x15 waiting on condition [0xcc3ff000..0xcc3ffbf0]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:681)
        at java.lang.Thread.run(Thread.java:619)

"Default RequestProcessor" daemon prio=3 tid=0x08298800 nid=0x14 in Object.wait() [0xcb7ff000..0xcb7ffb70]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdbd79768> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.tasklist.impl.FileScanningWorker.run(FileScanningWorker.java:204)
        - locked <0xdbd79768> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"Timer-0" daemon prio=3 tid=0x082d7400 nid=0x13 in Object.wait() [0xcbbff000..0xcbbffaf0]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xdabfa438> (a java.util.TaskQueue)
        at java.util.TimerThread.mainLoop(Timer.java:509)
        - locked <0xdabfa438> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"CLI Requests Server" daemon prio=3 tid=0x082ba400 nid=0x12 runnable [0xcbfff000..0xcbfffa70]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
        - locked <0xda8edcf0> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:453)
        at java.net.ServerSocket.accept(ServerSocket.java:421)
        at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1002)

"Low Memory Detector" daemon prio=3 tid=0x0817f000 nid=0xf runnable [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread1" daemon prio=3 tid=0x0817c800 nid=0xe waiting on condition [0x00000000..0xcdd271d8]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=3 tid=0x0817ac00 nid=0xd waiting on condition [0x00000000..0xcdd69158]
   java.lang.Thread.State: RUNNABLE

"JDWP Event Helper Thread" daemon prio=3 tid=0x08170000 nid=0xc runnable [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"JDWP Transport Listener: dt_socket" daemon prio=3 tid=0x0816e400 nid=0xb runnable [0x00000000..0xccfffa30]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=3 tid=0x08166c00 nid=0xa waiting on condition [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=3 tid=0x0814cc00 nid=0x9 in Object.wait() [0xcd7ff000..0xcd7ff9f0]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xda9724b0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0xda9724b0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=3 tid=0x08148800 nid=0x8 in Object.wait() [0xcdbff000..0xcdbff970]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xda9310f8> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0xda9310f8> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=3 tid=0x08145c00 nid=0x7 runnable

"GC task thread#0 (ParallelGC)" prio=3 tid=0x08078800 nid=0x3 runnable

"GC task thread#1 (ParallelGC)" prio=3 tid=0x08079800 nid=0x4 runnable

"GC task thread#2 (ParallelGC)" prio=3 tid=0x0807a800 nid=0x5 runnable

"GC task thread#3 (ParallelGC)" prio=3 tid=0x0807b400 nid=0x6 runnable

"VM Periodic Task Thread" prio=3 tid=0x08181400 nid=0x10 waiting on condition

JNI global references: 14917

Heap
 PSYoungGen      total 48320K, used 20520K [0xf7000000, 0xfaa00000, 0xfaa00000)
  eden space 48000K, 42% used [0xf7000000,0xf83ba0c0,0xf9ee0000)
  from space 320K, 100% used [0xf9ee0000,0xf9f30000,0xf9f30000)
  to   space 5824K, 0% used [0xfa450000,0xfa450000,0xfaa00000)
 PSOldGen        total 61440K, used 31275K [0xda800000, 0xde400000, 0xf7000000)
  object space 61440K, 50% used [0xda800000,0xdc68ac90,0xde400000)
 PSPermGen       total 63488K, used 49062K [0xce000000, 0xd1e00000, 0xda800000)
  object space 63488K, 77% used [0xce000000,0xd0fe9bd8,0xd1e00000)
Comment 1 Alexander Simon 2008-08-27 12:33:38 UTC
I cannot reproduce bug.
I have a guess: such thread dump can be if user debugs IDE. Is it right?
vv159170: Could you run unit test 
main/cnd.repository/test/unit/src/org/netbeans/modules/cnd/repository/disk/MemoryCacheTest.java?
Test simulates access to MemoryCache from 5 threads.
Unit test and some MemoryCache optimization are in the change set:
http://hg.netbeans.org/main/rev/4b71a2128bfa
Comment 2 Vladimir Voskresensky 2008-08-27 14:57:37 UTC
You are right. I debugged IDE
Comment 3 Quality Engineering 2008-08-28 06:42:02 UTC
Integrated into 'main-golden', available in build *200808280201* on http://bits.netbeans.org/dev/nightly/
Changeset: http://hg.netbeans.org/main/rev/4b71a2128bfa
User: Alexander Simon <alexvsimon@netbeans.org>
Log: fixing: IZ#145165: dead lock in repository
- add unit test