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 11062 - Deadlock when mounting a file system
Summary: Deadlock when mounting a file system
Status: CLOSED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 3.x
Hardware: PC Windows ME/2000
: P2 blocker (vote)
Assignee: Jaroslav Tulach
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2001-04-04 22:55 UTC by Michael Ottati
Modified: 2008-12-23 00:02 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
gzipped tarball of directory I was mounting. (18.03 KB, application/octet-stream)
2001-07-20 20:11 UTC, Michael Ottati
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Ottati 2001-04-04 22:55:25 UTC
The way I created this error was to bring a closed source build
(tags release32 on Open Source/no tag on closed source) up with a non populated 
userdir. When the IDE came up, I unmounted the samples directory and attempted 
to mount my own directory. The system hung.

This actually happened to me yesterday and was not reproducable so I let it go. 
I work on two machines, one home, and one in the office. Yesterdays problem was 
on the office machine. I did not save the trace.

Today I went to work on my home machine, did a complete CVS update on the closed 
and open source, and got the same problem. I note that one of the .nbattr files 
got updated.

If I can figure out how to attach the directory that I was trying to mount, I 
will attach it. 

$ ls -la $(find . -name .nbattrs )
-rw-r--r--   1 mottati  None          521 Mar 31 01:09 ./.nbattrs
-rw-r--r--   1 mottati  None          632 Mar 31 01:08 ./Package/.nbattrs
-rw-r--r--   1 mottati  None        16205 Apr  4 14:16 ./beans/.nbattrs
-rw-r--r--   1 mottati  None          549 Mar 30 13:48 ./mountfs/.nbattrs
-rw-r--r--   1 mottati  None          706 Mar 30 22:15 ./testf/.nbattrs

I am filing against the core because I dont really know how to catergorize this.


Full thread dump:

"org.netbeans.core.ModuleActions-2" daemon prio=2 tid=0x102b9690 nid=0x358 
waiting on monitor [0x11e5f000..0x11e5fdc4]
        at java.lang.Class.newInstance0(Native Method)
        at java.lang.Class.newInstance(Class.java:237)
        at java.beans.Introspector.instantiate(Introspector.java:1067)
        at java.beans.Introspector.findInformant(Introspector.java:327)
        at java.beans.Introspector.<init>(Introspector.java:256)
        at java.beans.Introspector.getBeanInfo(Introspector.java:81)
        at org.openide.util.Utilities.getBeanInfo(Utilities.java:228)
        at org.openide.nodes.BeanNode.initialization(BeanNode.java:456)
        at org.openide.nodes.BeanNode.<init>(BeanNode.java:121)
        at org.openide.nodes.BeanNode.<init>(BeanNode.java:106)
        at org.netbeans.core.FSPoolNode$FSNode.<init>(FSPoolNode.java:191)
        at org.netbeans.core.FSPoolNode$DSMap.createNodes(FSPoolNode.java:306)
        at org.openide.nodes.Children$Keys$KE.nodes(Children.java:1753)
        at org.openide.nodes.ChildrenArray.nodesFor(ChildrenArray.java:125)
        at org.openide.nodes.Children$Info.nodes(Children.java:879)
        at org.openide.nodes.Children.updateAdd(Children.java:687)
        at org.openide.nodes.Children.setEntries(Children.java:479)
        at org.openide.nodes.Children$17.run(Children.java:1614)
        at org.openide.util.Mutex.postRequest(Mutex.java:803)
        at org.openide.util.Mutex.postWriteRequest(Mutex.java:337)
        at org.openide.nodes.Children$Keys.setKeys(Children.java:1622)
        at org.netbeans.core.FSPoolNode$DSMap.refresh(FSPoolNode.java:326)
        at org.netbeans.core.FSPoolNode.refresh(FSPoolNode.java:176)
        at org.netbeans.core.FSPoolNode.refresh(FSPoolNode.java:169)
        at org.netbeans.core.FSPoolNode.fileSystemAdded(FSPoolNode.java:152)
        at 
org.openide.util.WeakListener$Repository.fileSystemAdded(WeakListener.java:473)
        at 
org.openide.filesystems.Repository.fireFileSystem(Repository.java:437)
        at org.openide.filesystems.Repository.addFileSystem(Repository.java:171)
        at 
org.netbeans.core.actions.AddFSAction.performAction(AddFSAction.java:94)
        at 
org.openide.util.actions.CallableSystemAction.actionPerformed(CallableSystemActi
on.java:66)
        at org.netbeans.core.ModuleActions$1.run(ModuleActions.java:76)
        at org.openide.util.Task.run(Task.java:124)
        at 
org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:622)

"OpenFile Server" daemon prio=2 tid=0x109f34d0 nid=0x624 runnable 
[0x1191f000..0x1191fdc4]
        at java.net.PlainDatagramSocketImpl.peek(Native Method)
        at java.net.DatagramSocket.receive(DatagramSocket.java:354)
        at org.netbeans.modules.openfile.Server.run(Server.java:132)
        at java.lang.Thread.run(Thread.java:484)

"jndi.refreshd" daemon prio=7 tid=0x9a1150 nid=0x138 waiting on monitor 
[0x1181f000..0x1181fdc4]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at org.netbeans.modules.jndi.utils.Refreshd.run(Refreshd.java:62)

"Compilation" daemon prio=2 tid=0x109a2b00 nid=0x490 waiting on monitor 
[0x1151f000..0x1151fdc4]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at 
org.netbeans.core.compiler.CompilationEngineImpl$CompilerThread.nextJobAndTask(C
ompilationEngineImpl.java:162)
        at 
org.netbeans.core.compiler.CompilationEngineImpl$CompilerThread.run(CompilationE
ngineImpl.java:185)

"AntProjectSupport.FiringProcessor" prio=5 tid=0x1092cfd0 nid=0x538 waiting on 
monitor [0x1131f000..0x1131fdc4]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.tools.ant.module.xml.AntProjectSupport$FiringProcessor.run(AntProject
Support.java:522)

"JarFs - modification watcher" daemon prio=2 tid=0x10183530 nid=0x43c waiting on 
monitor [0x1121f000..0x1121fdc4]
        at java.lang.Object.wait(Native Method)
        at 
org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:581)

"XMLDataObject/parser" daemon prio=4 tid=0x101dc038 nid=0x574 waiting on monitor 
[0x1091f000..0x1091fdc4]
        at java.lang.Object.wait(Native Method)
        at 
org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:581)

"Folder recognizer" daemon prio=7 tid=0xac93cb8 nid=0x5b0 waiting on monitor 
[0x1081f000..0x1081fdc4]
        at java.lang.Object.wait(Native Method)
        at 
org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:581)

"Folder Instance Processor" daemon prio=7 tid=0xff53e98 nid=0x2fc waiting on 
monitor [0x1071f000..0x1071fdc4]
        at java.lang.Object.wait(Native Method)
        at 
org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:581)

"Screen Updater" prio=4 tid=0xab52ca8 nid=0x48c waiting on monitor 
[0x1061f000..0x1061fdc4]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at sun.awt.ScreenUpdater.nextEntry(ScreenUpdater.java:75)
        at sun.awt.ScreenUpdater.run(ScreenUpdater.java:95)

"TimerQueue" daemon prio=7 tid=0xff1f130 nid=0x4d8 waiting on monitor 
[0x1051f000..0x1051fdc4]
        at java.lang.Object.wait(Native Method)
        at javax.swing.TimerQueue.run(TimerQueue.java:232)
        at java.lang.Thread.run(Thread.java:484)

"OpenIDE Request Processor-0" daemon prio=2 tid=0xad15698 nid=0x5a4 waiting on 
monitor [0x1040f000..0x1040fdc4]
        at java.lang.Object.wait(Native Method)
        at 
org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:581)

"AWT-Windows" prio=5 tid=0xacbfdd0 nid=0x4f4 runnable [0xfdef000..0xfdefdc4]
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(WToolkit.java:186)
        at java.lang.Thread.run(Thread.java:484)

"SunToolkit.PostEventQueue-0" prio=5 tid=0xac8f578 nid=0x4a8 waiting on monitor 
[0xfcef000..0xfcefdc4]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at sun.awt.PostEventQueue.run(SunToolkit.java:496)

"AWT-EventQueue-0" prio=7 tid=0x9a1070 nid=0x58c runnable [0xfbef000..0xfbefdc4]
        at 
java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:843)
        at java.beans.Introspector.internalFindMethod(Introspector.java:883)
        at java.beans.Introspector.findMethod(Introspector.java:979)
        at java.beans.PropertyDescriptor.<init>(PropertyDescriptor.java:83)
        at 
org.netbeans.beaninfo.ExLocalFileSystemBeanInfo.<clinit>(ExLocalFileSystemBeanIn
fo.java:44)
        at org.netbeans.core.RootFolderNode.getIcon(RootFolderNode.java:161)
        at org.netbeans.core.RootFolderNode.getIcon(RootFolderNode.java:139)
        at 
org.openide.explorer.view.NodeRenderer$Tree.update(NodeRenderer.java:268)
        at 
org.openide.explorer.view.VisualizerNode.getTree(VisualizerNode.java:195)
        at 
org.openide.explorer.view.NodeRenderer.getTreeCellRendererComponent(NodeRenderer
.java:94)
        at 
javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(Basic
TreeUI.java:2611)
        at 
javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:
406)
        at 
javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(Var
iableHeightLayoutCache.java:1293)
        at 
javax.swing.tree.VariableHeightLayoutCache.createNodeAt(VariableHeightLayoutCach
e.java:715)
        at 
javax.swing.tree.VariableHeightLayoutCache.treeNodesInserted(VariableHeightLayou
tCache.java:433)
        at 
javax.swing.plaf.basic.BasicTreeUI$TreeModelHandler.treeNodesInserted(BasicTreeU
I.java:2355)
        at 
javax.swing.tree.DefaultTreeModel.fireTreeNodesInserted(DefaultTreeModel.java:46
6)
        at 
javax.swing.tree.DefaultTreeModel.nodesWereInserted(DefaultTreeModel.java:289)
        at 
org.openide.explorer.view.NodeTreeModel$Listener.added(NodeTreeModel.java:142)
        at 
org.openide.explorer.view.VisualizerChildren.added(VisualizerChildren.java:74)
        at 
org.openide.explorer.view.VisualizerEvent$Added.run(VisualizerEvent.java:83)
        at 
org.openide.explorer.view.VisualizerNode$QP.run(VisualizerNode.java:442)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:154)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:317)
        at 
java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)

"Signal Dispatcher" daemon prio=10 tid=0x94e560 nid=0x464 waiting on monitor 
[0..0]

"Finalizer" daemon prio=9 tid=0x94ac60 nid=0x49c waiting on monitor 
[0xb04f000..0xb04fdc4]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:108)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:123)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:162)

"Reference Handler" daemon prio=10 tid=0xab50430 nid=0x520 waiting on monitor 
[0xaf4f000..0xaf4fdc4]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:110)

"main" prio=5 tid=0x944d00 nid=0x5a8 waiting on monitor [0..0x12d15c]

"VM Thread" prio=5 tid=0x991398 nid=0x580 runnable

"VM Periodic Task Thread" prio=10 tid=0x94d458 nid=0x41c waiting on monitor
Comment 1 Michael Ottati 2001-04-04 22:58:27 UTC
Created attachment 1000 [details]
gzipped tarball of directory I was mounting.
Comment 2 Michael Ottati 2001-04-04 23:05:30 UTC
This may be rooted in an EJB or EJBModule bug but it is hard to tell as there is 
no evidence of either of these two classes being in any current thread. I
Comment 3 Jaroslav Tulach 2001-04-05 18:23:52 UTC
I wonder what we will do with it. It is not hard to fix this particular problem,
but there can be thousands of similar cases...

The deadlock is between java.beans.Introspector and the BeanInfo class that in
<cinit> calls back to the Introspector. 

Because static initialization code in BeanInfo is offen (and suggested by
NetBeans), I am afraid there can be a lot of similar problems.

Comment 4 Jaroslav Tulach 2001-04-06 10:10:02 UTC
Modified the beaninfos for the Ex*FileSystems to initialize the property
descritors in constructor instead static initilizer.
Comment 5 Jan Chalupa 2001-05-05 20:48:27 UTC
Target milestone 3.2
Comment 6 Marian Mirilovic 2002-05-30 15:09:39 UTC
closed