Bug 84923 - Deadlock loading classes
Summary: Deadlock loading classes
Status: RESOLVED INVALID
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Runtime (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: platform-runtime-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: vm
Depends on:
Blocks:
 
Reported: 2005-02-10 13:52 EST by Nick Edgar CLA
Modified: 2005-02-16 10:40 EST (History)
1 user (show)

See Also:


Attachments
Full Javacore file (574KB) (573.16 KB, text/plain)
2005-02-16 10:40 EST, Nick Edgar CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nick Edgar CLA 2005-02-10 13:52:26 EST
build I20040209-0800

- started eclipse
- it was doing a build
- tried expanding HEAD in the repo view
- neither the build nor the expansion were making progress

Thread dump is:

2XMFULLTHDDUMP Full thread dump J9SE VM (J2RE 1.4.2 IBM J9 2.2 Windows 2000
x86-32 build 20040916_0908_lHdSMR, native threads):
3XMTHREADINFO      "main" (TID:0x00086D00, sys_thread_t:0x00235E3C, state:CW,
native ID:0x00000A9C) prio=6
4XESTACKTRACE          at org/eclipse/swt/internal/win32/OS.WaitMessage(Native
Method)
4XESTACKTRACE          at org/eclipse/swt/widgets/Display.sleep(Display.java:3183)
4XESTACKTRACE          at
org/eclipse/ui/application/WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:334)
4XESTACKTRACE          at
org/eclipse/ui/internal/Workbench.runEventLoop(Workbench.java:1625)
4XESTACKTRACE          at
org/eclipse/ui/internal/Workbench.runUI(Workbench.java:1590)
4XESTACKTRACE          at
org/eclipse/ui/internal/Workbench.createAndRunWorkbench(Workbench.java:299)
4XESTACKTRACE          at
org/eclipse/ui/PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
4XESTACKTRACE          at
org/eclipse/ui/internal/ide/IDEApplication.run(IDEApplication.java:102)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/PlatformActivator$1.run(PlatformActivator.java:227)
4XESTACKTRACE          at
org/eclipse/core/runtime/adaptor/EclipseStarter.run(EclipseStarter.java:281)
4XESTACKTRACE          at
org/eclipse/core/runtime/adaptor/EclipseStarter.run(EclipseStarter.java:131)
4XESTACKTRACE          at sun/reflect/NativeMethodAccessorImpl.invoke0(Native
Method)
4XESTACKTRACE          at
sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
4XESTACKTRACE          at
sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
4XESTACKTRACE          at
sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
4XESTACKTRACE          at java/lang/reflect/Method.invoke(Method.java:391)
4XESTACKTRACE          at org/eclipse/core/launcher/Main.basicRun(Main.java:261)
4XESTACKTRACE          at org/eclipse/core/launcher/Main.run(Main.java:817)
4XESTACKTRACE          at org/eclipse/core/launcher/Main.main(Main.java:801)
3XMTHREADINFO      "[system]" (TID:0x00087100, sys_thread_t:0x00235EEC,
state:CW, native ID:0x00000610) prio=11
3XMTHREADINFO      "Framework Event Dispatcher" (TID:0x00087500,
sys_thread_t:0x00235FF4, state:CW, native ID:0x00000630) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:223)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/ThreadJob.joinRun(ThreadJob.java:159)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/ImplicitJobs.begin(ImplicitJobs.java:87)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/JobManager.beginRule(JobManager.java:185)
4XESTACKTRACE          at
org/eclipse/core/internal/resources/WorkManager.checkIn(WorkManager.java:96)
4XESTACKTRACE          at
org/eclipse/core/internal/resources/Workspace.prepareOperation(Workspace.java:1650)
4XESTACKTRACE          at
org/eclipse/core/internal/resources/Workspace.run(Workspace.java:1690)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/JavaModelOperation.runOperation(JavaModelOperation.java:766)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/JavaProject.setRawClasspath(JavaProject.java:2739)
4XESTACKTRACE          at org/eclipse/jdt/core/JavaCore$3.run(JavaCore.java:3769)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/BatchOperation.executeOperation(BatchOperation.java:34)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/JavaModelOperation.run(JavaModelOperation.java:710)
4XESTACKTRACE          at
org/eclipse/core/internal/resources/Workspace.run(Workspace.java:1695)
4XESTACKTRACE          at org/eclipse/jdt/core/JavaCore.run(JavaCore.java:3582)
4XESTACKTRACE          at
org/eclipse/jdt/core/JavaCore.setClasspathContainer(JavaCore.java:3752)
4XESTACKTRACE          at
org/eclipse/pde/internal/core/ModelEntry.updateClasspathContainer(ModelEntry.java:110)
4XESTACKTRACE          at
org/eclipse/pde/internal/core/RequiredPluginsInitializer.initialize(RequiredPluginsInitializer.java:40)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/JavaModelManager.initializeContainer(JavaModelManager.java:1274)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/JavaModelManager.initializeAllContainers(JavaModelManager.java:1239)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/JavaModelManager.getClasspathContainer(JavaModelManager.java:846)
4XESTACKTRACE          at
org/eclipse/jdt/core/JavaCore.getClasspathContainer(JavaCore.java:1262)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/JavaProject.getResolvedClasspath(JavaProject.java:2033)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/JavaProject.getResolvedClasspath(JavaProject.java:1946)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/PackageFragmentRoot.validateOnClasspath(PackageFragmentRoot.java:790)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/PackageFragmentRoot.exists(PackageFragmentRoot.java:351)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/Openable.parentExists(Openable.java:432)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/Openable.exists(Openable.java:157)
4XESTACKTRACE          at
org/eclipse/jdt/internal/ui/workingsets/JavaWorkingSetUpdater.checkElementExistence(JavaWorkingSetUpdater.java:202)
4XESTACKTRACE          at
org/eclipse/jdt/internal/ui/workingsets/JavaWorkingSetUpdater.add(JavaWorkingSetUpdater.java:77)
4XESTACKTRACE          at
org/eclipse/ui/internal/AbstractWorkingSetManager.bundleChanged(AbstractWorkingSetManager.java:495)
4XESTACKTRACE          at
org/eclipse/osgi/framework/internal/core/BundleContextImpl.dispatchEvent(BundleContextImpl.java:1190)
4XESTACKTRACE          at
org/eclipse/osgi/framework/eventmgr/EventManager.dispatchEvent(EventManager.java:186)
4XESTACKTRACE          at
org/eclipse/osgi/framework/eventmgr/EventThread.run(EventThread.java:104)
3XMTHREADINFO      "Finalizer thread" (TID:0x0DA50400, sys_thread_t:0x0023604C,
state:CW, native ID:0x00000A58) prio=5
3XMTHREADINFO      "Start Level Event Dispatcher" (TID:0x0DA50C00,
sys_thread_t:0x002360FC, state:CW, native ID:0x000004CC) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:193)
4XESTACKTRACE          at
org/eclipse/osgi/framework/eventmgr/EventThread.getNextEvent(EventThread.java:162)
4XESTACKTRACE          at
org/eclipse/osgi/framework/eventmgr/EventThread.run(EventThread.java:100)
3XMTHREADINFO      "Reference Cleaner: 1" (TID:0x0DD49100,
sys_thread_t:0x00236154, state:CW, native ID:0x00000AFC) prio=6
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:223)
4XESTACKTRACE          at
java/lang/ref/ReferenceQueue.remove(ReferenceQueue.java:96)
4XESTACKTRACE          at
java/lang/ref/ReferenceQueue.remove(ReferenceQueue.java:68)
4XESTACKTRACE          at
org/eclipse/jface/resource/ImageCache$ReferenceCleanerThread.run(ImageCache.java:424)
3XMTHREADINFO      "Worker-0" (TID:0x0DD49500, sys_thread_t:0x002361AC,
state:CW, native ID:0x0000090C) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:223)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/ThreadJob.joinRun(ThreadJob.java:159)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/ImplicitJobs.begin(ImplicitJobs.java:87)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/JobManager.beginRule(JobManager.java:185)
4XESTACKTRACE          at
org/eclipse/core/internal/utils/StringPoolJob.run(StringPoolJob.java:90)
4XESTACKTRACE          at org/eclipse/core/internal/jobs/Worker.run(Worker.java:66)
3XMTHREADINFO      "Java indexing" (TID:0x0DD49900, sys_thread_t:0x00236204,
state:CW, native ID:0x00000914) prio=4
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:193)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/search/processing/JobManager.run(JobManager.java:345)
4XESTACKTRACE          at java/lang/Thread.run(Thread.java:813)
3XMTHREADINFO      "Worker-3" (TID:0x0E286900, sys_thread_t:0x00236364,
state:CW, native ID:0x000009B0) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:223)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/WorkerPool.sleep(WorkerPool.java:162)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/WorkerPool.startJob(WorkerPool.java:199)
4XESTACKTRACE          at org/eclipse/core/internal/jobs/Worker.run(Worker.java:59)
3XMTHREADINFO      "Worker-4" (TID:0x0E286D00, sys_thread_t:0x002363BC, state:B,
native ID:0x00000AF8) prio=5
4XESTACKTRACE          at java/security/Security.getAlgClassName(Security.java:543)
4XESTACKTRACE          at java/security/Security.getAlgClassName(Security.java:600)
4XESTACKTRACE          at java/security/Security.getImpl(Security.java:1081)
4XESTACKTRACE          at
java/security/MessageDigest.getInstance(MessageDigest.java:135)
4XESTACKTRACE          at
sun/security/util/ManifestEntryVerifier.setEntry(ManifestEntryVerifier.java:148)
4XESTACKTRACE          at java/util/jar/JarVerifier.beginEntry(JarVerifier.java:170)
4XESTACKTRACE          at
java/util/jar/JarVerifier$VerifierStream.<init>(JarVerifier.java:383)
4XESTACKTRACE          at java/util/jar/JarFile.getInputStream(JarFile.java:446)
4XESTACKTRACE          at
sun/misc/URLClassPath$5.getInputStream(URLClassPath.java:678)
4XESTACKTRACE          at sun/misc/Resource.getBytes(Resource.java:75)
4XESTACKTRACE          at
java/net/URLClassLoader.defineClass(URLClassLoader.java:471)
4XESTACKTRACE          at
java/net/URLClassLoader.access$500(URLClassLoader.java:108)
4XESTACKTRACE          at
java/net/URLClassLoader$ClassFinder.run(URLClassLoader.java:846)
4XESTACKTRACE          at
java/security/AccessController.doPrivileged(AccessController.java:218)
4XESTACKTRACE          at java/net/URLClassLoader.findClass(URLClassLoader.java:370)
4XESTACKTRACE          at java/lang/ClassLoader.loadClass(ClassLoader.java:601)
4XESTACKTRACE          at java/lang/ClassLoader.loadClass(ClassLoader.java:560)
4XESTACKTRACE          at
java/security/Security.createAlgInstance(Security.java:1240)
4XESTACKTRACE          at
java/security/Security.createAlgInstance(Security.java:1195)
4XESTACKTRACE          at java/security/Security.getImpl(Security.java:1086)
4XESTACKTRACE          at
java/security/MessageDigest.getInstance(MessageDigest.java:135)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/Cipher.generateBytes(Cipher.java:116)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/Cipher.nextRandom(Cipher.java:143)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/Cipher.transform(Cipher.java:152)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/Cipher.cipher(Cipher.java:79)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/Cipher.cipher(Cipher.java:105)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/CipherOutputStream.write(CipherOutputStream.java:45)
4XESTACKTRACE          at
java/io/FilterOutputStream.write(FilterOutputStream.java:123)
4XESTACKTRACE          at
java/io/ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1733)
4XESTACKTRACE          at
java/io/ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1642)
4XESTACKTRACE          at
java/io/ObjectOutputStream.<init>(ObjectOutputStream.java:215)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/AuthorizationDatabase.save(AuthorizationDatabase.java:345)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/AuthorizationDatabase.save(AuthorizationDatabase.java:310)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/AuthorizationDatabase.load(AuthorizationDatabase.java:253)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/AuthorizationDatabase.<init>(AuthorizationDatabase.java:79)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/AuthorizationHandler.loadKeyring(AuthorizationHandler.java:43)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/AuthorizationHandler.getAuthorizationInfo(AuthorizationHandler.java:89)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/InternalPlatform.getAuthorizationInfo(InternalPlatform.java:271)
4XESTACKTRACE          at
org/eclipse/core/runtime/Platform.getAuthorizationInfo(Platform.java:544)
4XESTACKTRACE          at
org/eclipse/team/internal/ccvs/core/connection/CVSRepositoryLocation.retrievePassword(CVSRepositoryLocation.java:935)
4XESTACKTRACE          at
org/eclipse/team/internal/ccvs/core/connection/CVSRepositoryLocation.openConnection(CVSRepositoryLocation.java:802)
4XESTACKTRACE          at
org/eclipse/team/internal/ccvs/core/client/Session.open(Session.java:148)
4XESTACKTRACE          at
org/eclipse/team/internal/ccvs/core/resources/RemoteFolderMemberFetcher.performUpdate(RemoteFolderMemberFetcher.java:94)
4XESTACKTRACE          at
org/eclipse/team/internal/ccvs/ui/operations/FetchMembersOperation$InternalRemoteFolderMemberFetcher.performUpdate(FetchMembersOperation.java:67)
4XESTACKTRACE          at
org/eclipse/team/internal/ccvs/core/resources/RemoteFolderMemberFetcher.fetchMembers(RemoteFolderMemberFetcher.java:61)
4XESTACKTRACE          at
org/eclipse/team/internal/ccvs/core/resources/RemoteFolderMemberFetcher.fetchMembers(RemoteFolderMemberFetcher.java:52)
4XESTACKTRACE          at
org/eclipse/team/internal/ccvs/ui/operations/FetchMembersOperation.execute(FetchMembersOperation.java:105)
4XESTACKTRACE          at
org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.run(CVSOperation.java:87)
4XESTACKTRACE          at
org/eclipse/team/internal/ccvs/ui/model/CVSTagElement.fetchDeferredChildren(CVSTagElement.java:133)
4XESTACKTRACE          at
org/eclipse/ui/progress/DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:166)
4XESTACKTRACE          at org/eclipse/core/internal/jobs/Worker.run(Worker.java:66)
3XMTHREADINFO      "Worker-5" (TID:0x0E287100, sys_thread_t:0x00236414,
state:CW, native ID:0x0000033C) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:223)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/Semaphore.acquire(Semaphore.java:38)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/OrderedLock.doAcquire(OrderedLock.java:166)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/OrderedLock.acquire(OrderedLock.java:102)
4XESTACKTRACE          at
org/eclipse/core/internal/jobs/OrderedLock.acquire(OrderedLock.java:79)
4XESTACKTRACE          at
org/eclipse/core/internal/resources/WorkManager.checkIn(WorkManager.java:97)
4XESTACKTRACE          at
org/eclipse/core/internal/resources/Workspace.prepareOperation(Workspace.java:1650)
4XESTACKTRACE          at
org/eclipse/core/internal/resources/Workspace.run(Workspace.java:1690)
4XESTACKTRACE          at
org/eclipse/core/internal/events/NotificationManager$NotifyJob.run(NotificationManager.java:38)
4XESTACKTRACE          at org/eclipse/core/internal/jobs/Worker.run(Worker.java:66)
3XMTHREADINFO      "Worker-6" (TID:0x157D9A00, sys_thread_t:0x0023646C, state:B,
native ID:0x00000858) prio=5
4XESTACKTRACE          at java/lang/ClassLoader.loadClass(ClassLoader.java:594)
4XESTACKTRACE          at
sun/misc/Launcher$AppClassLoader.loadClass(Launcher.java:432)
4XESTACKTRACE          at java/lang/ClassLoader.loadClass(ClassLoader.java:560)
4XESTACKTRACE          at java/security/Provider.loadProvider(Provider.java:175)
4XESTACKTRACE          at java/security/Security$2.run(Security.java:397)
4XESTACKTRACE          at
java/security/AccessController.doPrivileged(AccessController.java:189)
4XESTACKTRACE          at java/security/Security.getProviderAt(Security.java:394)
4XESTACKTRACE          at java/security/Security.getProviders(Security.java:847)
4XESTACKTRACE          at
java/security/SecureRandom.getPrngAlgorithm(SecureRandom.java:493)
4XESTACKTRACE          at java/security/SecureRandom.<init>(SecureRandom.java:186)
4XESTACKTRACE          at
org/eclipse/core/internal/utils/UniversalUniqueIdentifier.computeNodeAddress(UniversalUniqueIdentifier.java:218)
4XESTACKTRACE          at
org/eclipse/core/internal/utils/UniversalUniqueIdentifier.<clinit>(UniversalUniqueIdentifier.java:41)
4XESTACKTRACE          at java/lang/Class.initializeImpl(Native Method)
4XESTACKTRACE          at java/lang/Class.initialize(Class.java:350)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/HistoryBucket$HistoryEntry.compareStates(HistoryBucket.java:66)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/HistoryBucket$HistoryEntry.merge(HistoryBucket.java:121)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/HistoryBucket$HistoryEntry.access$3(HistoryBucket.java:115)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/HistoryBucket.addBlobs(HistoryBucket.java:277)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/HistoryStore2$HistoryCopyVisitor.saveChanges(HistoryStore2.java:48)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/HistoryStore2$HistoryCopyVisitor.afterSaving(HistoryStore2.java:36)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/Bucket.accept(Bucket.java:199)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/BucketTree.internalAccept(BucketTree.java:97)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/BucketTree.accept(BucketTree.java:63)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/HistoryStore2.copyHistory(HistoryStore2.java:238)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/CopyVisitor.copyContents(CopyVisitor.java:94)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/CopyVisitor.copy(CopyVisitor.java:66)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/CopyVisitor.visit(CopyVisitor.java:184)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/UnifiedTree.accept(UnifiedTree.java:87)
4XESTACKTRACE          at
org/eclipse/core/internal/localstore/FileSystemResourceManager.copy(FileSystemResourceManager.java:140)
4XESTACKTRACE          at
org/eclipse/core/internal/resources/Resource.copy(Resource.java:537)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/builder/BatchImageBuilder$4.visit(BatchImageBuilder.java:227)
4XESTACKTRACE          at
org/eclipse/core/internal/resources/Resource$1.visitElement(Resource.java:51)
4XESTACKTRACE          at
org/eclipse/core/internal/watson/ElementTreeIterator.doIteration(ElementTreeIterator.java:81)
4XESTACKTRACE          at
org/eclipse/core/internal/watson/ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
4XESTACKTRACE          at
org/eclipse/core/internal/watson/ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
4XESTACKTRACE          at
org/eclipse/core/internal/watson/ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
4XESTACKTRACE          at
org/eclipse/core/internal/watson/ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
4XESTACKTRACE          at
org/eclipse/core/internal/watson/ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
4XESTACKTRACE          at
org/eclipse/core/internal/watson/ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
4XESTACKTRACE          at
org/eclipse/core/internal/watson/ElementTreeIterator.iterate(ElementTreeIterator.java:126)
4XESTACKTRACE          at
org/eclipse/core/internal/resources/Resource.accept(Resource.java:61)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/builder/BatchImageBuilder.copyExtraResourcesBack(BatchImageBuilder.java:197)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/builder/BatchImageBuilder.cleanOutputFolders(BatchImageBuilder.java:130)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/builder/BatchImageBuilder.build(BatchImageBuilder.java:35)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/builder/JavaBuilder.buildAll(JavaBuilder.java:212)
4XESTACKTRACE          at
org/eclipse/jdt/internal/core/builder/JavaBuilder.build(JavaBuilder.java:144)
4XESTACKTRACE          at
org/eclipse/core/internal/events/BuildManager$2.run(BuildManager.java:579)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/InternalPlatform.run(InternalPlatform.java:1018)
4XESTACKTRACE          at org/eclipse/core/runtime/Platform.run(Platform.java:757)
4XESTACKTRACE          at
org/eclipse/core/internal/events/BuildManager.basicBuild(BuildManager.java:159)
4XESTACKTRACE          at
org/eclipse/core/internal/events/BuildManager.basicBuild(BuildManager.java:197)
4XESTACKTRACE          at
org/eclipse/core/internal/events/BuildManager$1.run(BuildManager.java:226)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/InternalPlatform.run(InternalPlatform.java:1018)
4XESTACKTRACE          at org/eclipse/core/runtime/Platform.run(Platform.java:757)
4XESTACKTRACE          at
org/eclipse/core/internal/events/BuildManager.basicBuild(BuildManager.java:229)
4XESTACKTRACE          at
org/eclipse/core/internal/events/BuildManager.basicBuildLoop(BuildManager.java:248)
4XESTACKTRACE          at
org/eclipse/core/internal/events/BuildManager.build(BuildManager.java:277)
4XESTACKTRACE          at
org/eclipse/core/internal/events/AutoBuildJob.doBuild(AutoBuildJob.java:141)
4XESTACKTRACE          at
org/eclipse/core/internal/events/AutoBuildJob.run(AutoBuildJob.java:202)
4XESTACKTRACE          at org/eclipse/core/internal/jobs/Worker.run(Worker.java:66)
Comment 1 Rafael Chaves CLA 2005-02-10 14:50:25 EST
The deadlock seems to be between a call to MessageDigest.getInstance() and
instantiating a SecureRandom, and they do not seem to involve Eclipse class
loaders. It seems this comes from the Java class library instead. Nick, how
often have you seen this? Only once?

Here are the suspicious threads:

3XMTHREADINFO      "Worker-4" (TID:0x0E286D00, sys_thread_t:0x002363BC, state:B,
native ID:0x00000AF8) prio=5
4XESTACKTRACE          at java/security/Security.getAlgClassName(Security.java:543)
4XESTACKTRACE          at java/security/Security.getAlgClassName(Security.java:600)
4XESTACKTRACE          at java/security/Security.getImpl(Security.java:1081)
4XESTACKTRACE          at
java/security/MessageDigest.getInstance(MessageDigest.java:135)
4XESTACKTRACE          at
sun/security/util/ManifestEntryVerifier.setEntry(ManifestEntryVerifier.java:148)
4XESTACKTRACE          at java/util/jar/JarVerifier.beginEntry(JarVerifier.java:170)
4XESTACKTRACE          at
java/util/jar/JarVerifier$VerifierStream.<init>(JarVerifier.java:383)
4XESTACKTRACE          at java/util/jar/JarFile.getInputStream(JarFile.java:446)
4XESTACKTRACE          at
sun/misc/URLClassPath$5.getInputStream(URLClassPath.java:678)
4XESTACKTRACE          at sun/misc/Resource.getBytes(Resource.java:75)
4XESTACKTRACE          at
java/net/URLClassLoader.defineClass(URLClassLoader.java:471)
4XESTACKTRACE          at
java/net/URLClassLoader.access$500(URLClassLoader.java:108)
4XESTACKTRACE          at
java/net/URLClassLoader$ClassFinder.run(URLClassLoader.java:846)
4XESTACKTRACE          at
java/security/AccessController.doPrivileged(AccessController.java:218)
4XESTACKTRACE          at java/net/URLClassLoader.findClass(URLClassLoader.java:370)
4XESTACKTRACE          at java/lang/ClassLoader.loadClass(ClassLoader.java:601)
4XESTACKTRACE          at java/lang/ClassLoader.loadClass(ClassLoader.java:560)
4XESTACKTRACE          at
java/security/Security.createAlgInstance(Security.java:1240)
4XESTACKTRACE          at
java/security/Security.createAlgInstance(Security.java:1195)
4XESTACKTRACE          at java/security/Security.getImpl(Security.java:1086)
4XESTACKTRACE          at
java/security/MessageDigest.getInstance(MessageDigest.java:135)
4XESTACKTRACE          at
org/eclipse/core/internal/runtime/Cipher.generateBytes(Cipher.java:116)
...

3XMTHREADINFO      "Worker-6" (TID:0x157D9A00, sys_thread_t:0x0023646C, state:B,
native ID:0x00000858) prio=5
4XESTACKTRACE          at java/lang/ClassLoader.loadClass(ClassLoader.java:594)
4XESTACKTRACE          at
sun/misc/Launcher$AppClassLoader.loadClass(Launcher.java:432)
4XESTACKTRACE          at java/lang/ClassLoader.loadClass(ClassLoader.java:560)
4XESTACKTRACE          at java/security/Provider.loadProvider(Provider.java:175)
4XESTACKTRACE          at java/security/Security$2.run(Security.java:397)
4XESTACKTRACE          at
java/security/AccessController.doPrivileged(AccessController.java:189)
4XESTACKTRACE          at java/security/Security.getProviderAt(Security.java:394)
4XESTACKTRACE          at java/security/Security.getProviders(Security.java:847)
4XESTACKTRACE          at
java/security/SecureRandom.getPrngAlgorithm(SecureRandom.java:493)
4XESTACKTRACE          at java/security/SecureRandom.<init>(SecureRandom.java:186)
4XESTACKTRACE          at
org/eclipse/core/internal/utils/UniversalUniqueIdentifier.computeNodeAddress(UniversalUniqueIdentifier.java:218)
...

Comment 2 Nick Edgar CLA 2005-02-10 21:34:32 EST
I only saw it once, immediately after switching to the new build.
Comment 3 Nick Edgar CLA 2005-02-10 21:57:03 EST
Note that the "Framework Event Dispatcher" thread is blocked while holding the
workspace lock, and "Worker-6" (the auto-build job) is visiting the tree. 
Shouldn't the visitor also acquire the lock?
It looks like "Worker-5" is also blocked on the workspace lock.
Comment 4 Rafael Chaves CLA 2005-02-11 16:34:53 EST
Actually, it seems "Framework Event Dispatcher" is being held due to scheduling
rule conflicts, it has not acquired the workspace lock yet. "Worker-6" (one of
the two threads involved in the deadlock) is the one owning the workspace lock.

"Worker-6" also owns the monitor for the Security class and then tries to load a
class using the system class loader (which requires the class loader lock).

"Worker-4" is loading a class using the system class loader (so it owns the
system class loader monitor), and then trying to acquire the monitor for the
Security class.

I believe that other than reporting this to the VM vendor, there is not much we
can do. Maybe ensure we initialize the SecureRandom used in the UUID
implementation during the workspace startup?
Comment 5 John Arthorne CLA 2005-02-11 16:39:22 EST
I agree with Rafael's diagnosis.  I will do a search in the VM vendor's database
to see if it's a known problem.
Comment 6 John Arthorne CLA 2005-02-11 16:56:06 EST
Entered bug against the VM vendor: 49795,001,866
Comment 7 Nick Edgar CLA 2005-02-16 10:40:53 EST
Created attachment 17989 [details]
Full Javacore file (574KB)