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 207170 - Deadlock when closing a file
Summary: Deadlock when closing a file
Status: RESOLVED DUPLICATE of bug 207571
Alias: None
Product: platform
Classification: Unclassified
Component: Text (show other bugs)
Version: 7.0.1
Hardware: PC All
: P3 normal (vote)
Assignee: Miloslav Metelka
URL:
Keywords:
Depends on:
Blocks: 207571
  Show dependency tree
 
Reported: 2012-01-11 12:10 UTC by Vladimir Kvashin
Modified: 2012-05-17 09:25 UTC (History)
3 users (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 Vladimir Kvashin 2012-01-11 12:10:50 UTC
From time to time I'm getting a deadlock when closing file.

Two stacks below 
(both from the same from full thread dump taken at the moment of hangup)
show that there is a classic deadlock:

"wizard-descriptor-asynchronous-jobs" thread

	- locked monitor 0xe841edd8 (i.e. code is: synchronized (getLock(){...

	- then waits in readLock() 

"AWT-EventQueue-1" thread

	- locked writeLock() on the same document
	(see GuardedDocument.runAtomic(GuardedDocument.java:314) - 
	it calls atomicLockImpl which calls writeLock; 
	I attached debugger to make sure documents are same)

	- then waits for 0xe841edd8 (i.e. code is: synchronized (getLock()) {...
	
"wizard-descriptor-asynchronous-jobs" daemon prio=3 tid=0x0885e400 nid=0x3a 
in Object.wait() [0x9e8a9000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xe8422498> (a org.netbeans.modules.editor.NbEditorDocument)
at java.lang.Object.wait(Object.java:485)
at javax.swing.text.AbstractDocument.readLock(AbstractDocument.java:1372)
- locked <0xe8422498> (a org.netbeans.modules.editor.NbEditorDocument)
at org.netbeans.editor.BaseDocument.render(BaseDocument.java:1419)
at org.openide.text.PositionRef$Manager$DocumentRenderer.render(PositionRef.java:892)
at org.openide.text.PositionRef$Manager.processPositions(PositionRef.java:349)
at org.openide.text.PositionRef$Manager.documentClosed(PositionRef.java:290)
at org.openide.text.CloneableEditorSupport.doCloseDocument(CloneableEditorSupport.java:2257)
at org.openide.text.CloneableEditorSupport.closeDocument(CloneableEditorSupport.java:2224)
- locked <0xe841edd8> (a org.openide.windows.CloneableOpenSupport$Listener)
at org.openide.text.CloneableEditorSupport.notifyClosed(CloneableEditorSupport.java:2096)
at org.openide.text.DataEditorSupport.notifyClosed(DataEditorSupport.java:374)
at org.openide.text.CloneableEditorSupport.close(CloneableEditorSupport.java:2200)
at org.openide.windows.CloneableOpenSupport.close(CloneableOpenSupport.java:129)
at org.netbeans.modules.editor.EditorModule.reformat(EditorModule.java:688)
at org.netbeans.modules.editor.EditorModule.access$100(EditorModule.java:106)
at org.netbeans.modules.editor.EditorModule$6.operationCreateFromTemplate(EditorModule.java:352)
at org.openide.loaders.DataLoaderPool.fireOperationEvent(DataLoaderPool.java:240)
at org.openide.loaders.DataObject.fireOperationEvent(DataObject.java:848)
at org.openide.loaders.DataObject.createFromTemplate(DataObject.java:821)
at org.openide.loaders.DataObject.createFromTemplate(DataObject.java:800)
at org.netbeans.modules.cnd.editor.filecreation.CCFSrcFileIterator.instantiate(CCFSrcFileIterator.java:168)
at org.netbeans.modules.cnd.editor.filecreation.CCFSrcFileIterator.instantiate(CCFSrcFileIterator.java:154)
at org.openide.loaders.TemplateWizard$InstantiatingIteratorBridge.instantiate(TemplateWizard.java:1019)
at org.openide.loaders.TemplateWizard.handleInstantiate(TemplateWizard.java:591)
at org.openide.loaders.TemplateWizard.instantiateNewObjects(TemplateWizard.java:412)
at org.openide.loaders.TemplateWizardIterImpl.instantiate(TemplateWizardIterImpl.java:256)
at org.openide.loaders.TemplateWizardIteratorWrapper.instantiate(TemplateWizardIteratorWrapper.java:168)
at org.openide.WizardDescriptor.callInstantiateOpen(WizardDescriptor.java:1548)
at org.openide.WizardDescriptor.callInstantiate(WizardDescriptor.java:1505)
at org.openide.WizardDescriptor.access$1700(WizardDescriptor.java:137)
at org.openide.WizardDescriptor$Listener$2$1.run(WizardDescriptor.java:2099)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1424)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1968)


"AWT-EventQueue-1" prio=3 tid=0x098c9000 nid=0x24 waiting for monitor entry [0x9f336000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.openide.text.CloneableEditorSupport.getDocument(CloneableEditorSupport.java:933)
- waiting to lock <0xe841edd8> (a org.openide.windows.CloneableOpenSupport$Listener)
at org.openide.text.EditorSupportLineSet$Closed.stateChanged(EditorSupportLineSet.java:253)
- locked <0xe8217eb0> (a org.openide.text.EditorSupportLineSet$Closed)
at org.openide.util.WeakListenerImpl$Change.stateChanged(WeakListenerImpl.java:329)
at org.openide.text.CloneableEditorSupport.fireStateChangeEvent(CloneableEditorSupport.java:2370)
at org.openide.text.CloneableEditorSupport.fireDocumentChange(CloneableEditorSupport.java:2353)
at org.openide.text.CloneableEditorSupport.checkReload(CloneableEditorSupport.java:2331)
at org.openide.text.CloneableEditorSupport.access$2600(CloneableEditorSupport.java:133)
at org.openide.text.CloneableEditorSupport$Listener$1.run(CloneableEditorSupport.java:2952)
at org.netbeans.editor.GuardedDocument.runAtomic(GuardedDocument.java:314)
at org.openide.text.NbDocument.runAtomic(NbDocument.java:422)
at org.openide.text.CloneableEditorSupport$Listener$1.run(CloneableEditorSupport.java:2944)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
...
...
Comment 1 Vladimir Kvashin 2012-01-11 12:16:25 UTC
To be honest, I should confess that for now I'm only able to reproduce this on projects that are located on remote file system: 
in CND, set up a remote host; add a folder from this host to favorites; open a project there; add some new files there - approx. at 3-rd to 7-th attempt you'll get IDE totally frozen.

I would try finding the reason on remote FS side if I didn't see classical deadlock situation: under certain circumstances two locks are taken from different threads in an opposite order.
Comment 2 Vladimir Kvashin 2012-02-02 17:16:54 UTC
A workaround has been pushed to cnd-main:
http://hg.netbeans.org/cnd-main/rev/e72b14c4ac24
Comment 3 Quality Engineering 2012-02-09 02:41:07 UTC
Integrated into 'releases', will be available in build *201202082200* or newer. Wait for official and publicly available build.
Changeset: http://hg.netbeans.org/releases/rev/fb629a366725
User: Vladimir Kvashin <vkvashin@netbeans.org>
Log: Fixing #207170, #207571
(transplanted from e72b14c4ac246a20d896924f22774b44613f50d4)
Comment 4 Miloslav Metelka 2012-05-17 09:25:48 UTC
I guess that this is a dup of issue #207571.

*** This bug has been marked as a duplicate of bug 207571 ***