Bug 184633 - Deadlock between Children.MUTEX and Children.class
Deadlock between Children.MUTEX and Children.class
Status: RESOLVED FIXED
Product: platform
Classification: Unclassified
Component: Nodes
6.x
PC Linux
: P3 (vote)
: 6.x
Assigned To: Jaroslav Tulach
issues@platform
http://deadlock.netbeans.org/hudson/j...
: RANDOM, TEST, THREAD
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-04-21 14:51 UTC by Jesse Glick
Modified: 2010-04-24 05:30 UTC (History)
0 users

See Also:
Issue Type: DEFECT
:


Attachments
Hudson test failure log (56.18 KB, text/html)
2010-04-21 14:51 UTC, Jesse Glick
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jesse Glick 2010-04-21 14:51:06 UTC
Created attachment 97809 [details]
Hudson test failure log

Looks random; no changes in platform in this build. Seems to be a lock-ordering conflict (see marked lines):

> junit.framework.AssertionFailedError: The test testSnapshotFN did not finish in 35000ms
>     Thread Active Reference Queue Daemon
>>	at org.openide.nodes.Children.entrySupport(Children.java:147)
> 	at org.openide.nodes.Children$Keys$2.run(Children.java:1524)
> 	at org.openide.util.Mutex.postRequest(Mutex.java:1264)
> 	at org.openide.util.Mutex.postRequest(Mutex.java:1210)
>>	at org.openide.util.Mutex.postWriteRequest(Mutex.java:582)
> 	at org.openide.nodes.Children$Keys.applyKeys(Children.java:1533)
> 	at org.openide.nodes.Children$Keys.setKeys(Children.java:1477)
> 	at org.openide.nodes.ChildrenKeysTest$9K.removeNotify(ChildrenKeysTest.java:918)
> 	at org.openide.nodes.Children.callRemoveNotify(Children.java:555)
> 	at org.openide.nodes.EntrySupport$Default.finalizedChildrenArray(EntrySupport.java:903)
> 	at org.openide.nodes.EntrySupport$Default$ChArrRef.run(EntrySupport.java:987)
> 	at org.openide.util.lookup.implspi.ActiveQueue$Impl.run(ActiveQueue.java:67)
> 	at java.lang.Thread.run(Thread.java:619)
>     Thread Test Watch Dog: testSnapshotFN
> 	at java.lang.Object.wait(Object.java:-2)
> 	at java.lang.Object.wait(Object.java:485)
> 	at org.openide.util.Mutex$QueueCell.sleep(Mutex.java:1609)
> 	at org.openide.util.Mutex.enterImpl(Mutex.java:724)
> 	at org.openide.util.Mutex.enter(Mutex.java:631)
> 	at org.openide.util.Mutex.readEnter(Mutex.java:614)
>>	at org.openide.util.Mutex$Privileged.enterReadAccess(Mutex.java:1658)
> 	at org.openide.nodes.FilterNode.updateChildren(FilterNode.java:1048)
> 	at org.openide.nodes.Node.getChildren(Node.java:456)
> 	at org.openide.nodes.FilterNode$Children.entrySupport(FilterNode.java:1322)
> 	at org.openide.nodes.Children$Array.postInitializeEntrySupport(Children.java:671)
>>	at org.openide.nodes.FilterNode$Children.entrySupport(FilterNode.java:1348)
> 	at org.openide.nodes.Children.getNodesCount(Children.java:484)
> 	at org.openide.nodes.ChildrenKeysTest.testSnapshotFN(ChildrenKeysTest.java:1702)
> 	at org.netbeans.junit.NbTestCase.access$200(NbTestCase.java:89)
> 	at org.netbeans.junit.NbTestCase$2.doSomething(NbTestCase.java:345)
> 	at org.netbeans.junit.NbTestCase$1Guard.run(NbTestCase.java:274)
> 	at java.lang.Thread.run(Thread.java:619)
Comment 1 Jaroslav Tulach 2010-04-21 15:00:28 UTC
Interesting, thanks.
Comment 2 Jaroslav Tulach 2010-04-23 16:12:32 UTC
core-main#b55928eab547
Comment 3 Quality Engineering 2010-04-24 05:30:22 UTC
Integrated into 'main-golden', will be available in build *201004240200* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/b55928eab547
User: Jaroslav Tulach <jtulach@netbeans.org>
Log: #184633: Prevent re-entrant calls to entrySupport(), guard the comment with assert


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo