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.
Summary: | Deadlock in ExclusiveMutex | ||
---|---|---|---|
Product: | java | Reporter: | Jesse Glick <jglick> |
Component: | Unsupported | Assignee: | Pavel Flaska <pflaska> |
Status: | RESOLVED FIXED | ||
Severity: | blocker | Keywords: | RANDOM, THREAD |
Priority: | P3 | ||
Version: | 5.x | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | DEFECT | Exception Reporter: | |
Attachments: |
Deadlock
Some exceptions in log a few seconds before |
Description
Jesse Glick
2005-12-07 15:31:03 UTC
Created attachment 27634 [details]
Deadlock
Created attachment 27635 [details]
Some exceptions in log a few seconds before
Exceptions look to be caused by experimental javausagesnavigator module, but deadlock looks to be a logic problem in ExclusiveMutex - a bunch of threads are trying to enter it but no thread appears to be actually in it, so it's not clear what it's waiting for. Deadlock seems to be in mdr. - waiting to lock <0x835fd1e8> (a org.netbeans.mdr.NBMDRepositoryImpl$FacilityCache) Element creation is done outside the transaction. That is invalid IMO. As the code in javausagesnavigator does not run in MDR transaction, this problem occured. (Otherwise, in explicit transaction, it should not occur.) Reassigning back to java/javacore, where create* methods in proxy classes (MethodClassImpl, JavaClassImpl, FieldClassImpl, EnumConstantImpl and other ones should be checked they run under the correct lock.) Deadlock fixed in trunk. Checking in UsageFinder.java; /cvs/java/javacore/src/org/netbeans/modules/javacore/jmiimpl/javamodel/UsageFinder.java,v <-- UsageFinder.java new revision: 1.30; previous revision: 1.29 done Reorganization of java component |