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 211820 - Deadlock initializing loader pool
Summary: Deadlock initializing loader pool
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Data Systems (show other bugs)
Version: 7.2
Hardware: PC Linux
: P2 normal (vote)
Assignee: Jaroslav Tulach
URL:
Keywords:
: 211746 (view as bug list)
Depends on: 212263
Blocks:
  Show dependency tree
 
Reported: 2012-04-27 06:07 UTC by Jaroslav Tulach
Modified: 2012-05-09 21:46 UTC (History)
1 user (show)

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 Jaroslav Tulach 2012-04-27 06:07:25 UTC
Breaks:
http://deadlock.netbeans.org/hudson/job/ergonomics/3497/


Java stack information for the threads listed above:
===================================================
"On Start/Stop":
	at org.openide.util.lookup.MetaInfServicesLookup$P.getInstance(MetaInfServicesLookup.java:495)
	- waiting to lock <0x00000000e0f49ae8> (a java.lang.Class for org.netbeans.core.NbLoaderPool)
	at org.openide.util.lookup.AbstractLookup.lookup(AbstractLookup.java:421)
	at org.openide.util.lookup.ProxyLookup.lookup(ProxyLookup.java:216)
	at org.openide.loaders.DataLoaderPool.getDefault(DataLoaderPool.java:91)
	- locked <0x00000000e0f3a440> (a java.lang.Class for org.openide.loaders.DataLoaderPool)
	at org.openide.loaders.DataObjectPool.<clinit>(DataObjectPool.java:465)
	at org.openide.loaders.DataObject.find(DataObject.java:524)
	at org.openide.loaders.DataFolder.findFolder(DataFolder.java:540)
	at org.netbeans.modules.settings.RecognizeInstanceObjects$OverObjects.delegates(RecognizeInstanceObjects.java:141)
	at org.netbeans.modules.settings.RecognizeInstanceObjects$OverObjects.<init>(RecognizeInstanceObjects.java:104)
	at org.netbeans.modules.settings.RecognizeInstanceObjects.create(RecognizeInstanceObjects.java:93)
	at org.openide.util.lookup.implspi.NamedServicesProvider.forPath(NamedServicesProvider.java:93)
	at org.openide.util.lookup.Lookups.forPath(Lookups.java:230)
	at org.netbeans.modules.project.libraries.LibraryTypeRegistry.<init>(LibraryTypeRegistry.java:69)
	at org.netbeans.modules.project.libraries.LibraryTypeRegistry.getDefault(LibraryTypeRegistry.java:110)
	- locked <0x00000000e0eb1510> (a java.lang.Class for org.netbeans.modules.project.libraries.LibraryTypeRegistry)
	at org.netbeans.modules.project.libraries.LibrariesStorage.<init>(LibrariesStorage.java:114)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:355)
	at java.lang.Class.newInstance(Class.java:308)
	at org.openide.util.lookup.implspi.SharedClassObjectBridge.newInstance(SharedClassObjectBridge.java:64)
	at org.openide.util.lookup.MetaInfServicesLookup$P.getInstance(MetaInfServicesLookup.java:519)
	- locked <0x00000000e0ea6858> (a java.lang.Class for org.netbeans.modules.project.libraries.LibrariesStorage)
	at org.openide.util.lookup.AbstractLookup$R.allInstances(AbstractLookup.java:1041)
	at org.openide.util.lookup.AbstractLookup$R.allInstances(AbstractLookup.java:1021)
	at org.openide.util.lookup.ProxyLookup$LazyCollection.computeSingleResult(ProxyLookup.java:1249)
	at org.openide.util.lookup.ProxyLookup$LazyCollection.computeDelegate(ProxyLookup.java:1091)
	at org.openide.util.lookup.ProxyLookup$LazyCollection.access$900(ProxyLookup.java:1021)
	at org.openide.util.lookup.ProxyLookup$LazyCollection$1.hasNext(ProxyLookup.java:1215)
	at org.netbeans.modules.project.libraries.LibrariesModule.run(LibrariesModule.java:60)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1452)
	at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2032)
"main":
	at org.openide.loaders.DataLoaderPool.getDefault(DataLoaderPool.java:90)
	- waiting to lock <0x00000000e0f3a440> (a java.lang.Class for org.openide.loaders.DataLoaderPool)
	at org.netbeans.core.NbLoaderPool.getNbLoaderPool(NbLoaderPool.java:665)
	- locked <0x00000000e0f49ae8> (a java.lang.Class for org.netbeans.core.NbLoaderPool)
	at org.netbeans.core.CoreBridgeImpl.lookupCacheLoad(CoreBridgeImpl.java:141)
	at org.netbeans.core.startup.MainLookup.modulesClassPathInitialized(MainLookup.java:152)
	at org.netbeans.core.startup.NbInstaller.load(NbInstaller.java:373)
	at org.netbeans.ModuleManager.enable(ModuleManager.java:1177)
	at org.netbeans.ModuleManager.enable(ModuleManager.java:1000)
	at org.netbeans.core.startup.ModuleList.installNew(ModuleList.java:340)
	at org.netbeans.core.startup.ModuleList.trigger(ModuleList.java:276)
	at org.netbeans.core.startup.ModuleSystem.restore(ModuleSystem.java:295)
	at org.netbeans.core.startup.Main.getModuleSystem(Main.java:169)
	at org.netbeans.core.startup.Main.start(Main.java:305)
	at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:123)
	at java.lang.Thread.run(Thread.java:662)

Found 1 deadlock.
Comment 1 Jaroslav Tulach 2012-04-27 06:10:41 UTC
NbLoaderPool getNbLoaderPool is synchronized for no reason - enough to call to DataLoaderPool.getDefault ().
Comment 2 Jaroslav Tulach 2012-04-27 06:11:54 UTC
ergonomics#5c9720ad1213
Comment 3 Jaroslav Tulach 2012-04-27 13:30:03 UTC
*** Bug 211746 has been marked as a duplicate of this bug. ***
Comment 4 Quality Engineering 2012-05-02 10:05:36 UTC
Integrated into 'main-golden', will be available in build *201205020400* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/5c9720ad1213
User: Jaroslav Tulach <jtulach@netbeans.org>
Log: #211820: Don't synchronize in getNbLoaderPool