Bug 16141

Summary: hang loading plugin (during validation)
Product: [Eclipse Project] Platform Reporter: Barry Searle <searle>
Component: ResourcesAssignee: Platform-Resources-Inbox <platform-resources-inbox>
Status: CLOSED INVALID QA Contact:
Severity: critical    
Priority: P2 CC: paulacox
Version: 1.0   
Target Milestone: ---   
Hardware: PC   
OS: Windows NT   
Whiteboard:
Attachments:
Description Flags
javacore dump from hang none

Description Barry Searle CLA 2002-05-16 09:42:52 EDT
hang loading plugin during validation

I was doing a 'RunAnt' on a build.xml that usually works, hung
partway through (validation of server project).

1) ctrl-break stack/trhead dump attached (mostly)
2) coredump also created (email searle@ca.ibm.com to get it)

1) crtl-break stack/thread dump:
Full thread dump Classic VM (J2RE 1.3.0 IBM build cn130-20010925was, native 
threads):
    "ModalContext" (TID:0x2737c20, sys_thread_t:0x26ff1340, state:CW, native 
ID:0xad4) prio=5
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java(Compiled Code))
        at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java(Compiled 
Code))
        at java.net.URLClassLoader.defineClass(URLClassLoader.java(Compiled 
Code))
        at java.net.URLClassLoader.access$300(URLClassLoader.java(Compiled 
Code))
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java(Compiled 
Code))
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java(Compiled Code))
        at 
org.eclipse.core.internal.plugins.PluginClassLoader.findClassParentsSelf(PluginC
lassLoader.java(Compiled Code
))
        at 
org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLC
lassLoader.java(Compiled Code
))
        at 
org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLC
lassLoader.java(Compiled Code
))
        at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
        at 
org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation(Pl
uginDescriptor.java:619)
        at 
org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation(PluginDesc
riptor.java:208)
        at 
org.eclipse.core.internal.plugins.PluginClassLoader.activatePlugin(PluginClassLo
ader.java:52)
        at 
org.eclipse.core.internal.plugins.PluginClassLoader.findClassParentsSelf(PluginC
lassLoader.java(Compiled Code
))
        at 
org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLC
lassLoader.java(Compiled Code
))
        at 
org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLC
lassLoader.java(Compiled Code
))
        at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
        at 
org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension(Plu
ginDescriptor.java:152)
        at 
org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension(Plu
ginDescriptor.java:189)
        at 
org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension
(ConfigurationElement.java:97
)
        at 
com.ibm.etools.validate.registry.ValidationRegistryReader.initializeValidator(Va
lidationRegistryReader.java:4
14)
        at 
com.ibm.etools.validate.registry.ValidationRegistryReader.readExtension(Validati
onRegistryReader.java:482)
        at 
com.ibm.etools.validate.registry.ValidationRegistryReader.readRegistry(Validatio
nRegistryReader.java:508)
        at 
com.ibm.etools.validate.registry.ValidationRegistryReader.<init>(ValidationRegis
tryReader.java:84)
        at 
com.ibm.etools.validate.registry.ValidationRegistryReader.getReader(ValidationRe
gistryReader.java:329)
        at 
com.ibm.etools.validate.ValidatorManager.getReader(ValidatorManager.java:385)
        at 
com.ibm.etools.validate.ValidatorManager.loadValidatorMetaData(ValidatorManager.
java:702)
        at 
com.ibm.etools.validate.ValidatorManager.getConfiguredValidatorMetaData(Validato
rManager.java:262)
        at 
com.ibm.etools.validate.ValidatorManager.getConfiguredIncrementalValidators(Vali
datorManager.java:238)
        at 
com.ibm.etools.validate.ValidatorManager.getConfiguredIncrementalValidators(Vali
datorManager.java:228)
        at 
com.ibm.etools.validate.ValidatorManager.isAutoValidateEnabled(ValidatorManager.
java:592)
        at 
com.ibm.etools.validate.ValidatorManager.isAutoValidateEnabled(ValidatorManager.
java:567)
        at 
com.ibm.etools.validate.ValidatorManager.isAutoValidateChecked(ValidatorManager.
java:544)
        at com.ibm.etools.validate.ValidationBuilder.build(Unknown Source)
        at 
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:66)
        at 
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:808
)
        at org.eclipse.core.runtime.Platform.run(Platform.java:393)
        at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:87)
        at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:176)
        at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:476)
        at 
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:128)
        at 
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:808
)
        at org.eclipse.core.runtime.Platform.run(Platform.java:393)
        at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:142)
        at 
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:512)
        at 
org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:663)
        at 
org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:905)
        at com.ibm.etools.j2ee.extras.BuildApplicationUtilJar.execute(Unknown 
Source)
        at org.apache.tools.ant.Task.perform(Task.java:217)
        at org.apache.tools.ant.Target.execute(Target.java:184)
        at org.apache.tools.ant.Target.performTasks(Target.java:202)
        at org.apache.tools.ant.Project.executeTarget(Project.java:601)
        at org.apache.tools.ant.Project.executeTargets(Project.java:560)
        at org.eclipse.ant.core.AntRunner.runBuild(AntRunner.java:636)
        at org.eclipse.ant.core.AntRunner.run(AntRunner.java:555)
        at org.eclipse.ant.core.AntRunner.run(AntRunner.java:577)
        at 
org.eclipse.ant.internal.ui.AntLaunchWizard$1.run(AntLaunchWizard.java:277)
        at 
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.jav
a:98)

    "Thread-25" (TID:0x30239e0, sys_thread_t:0x25de46e8, state:CW, native 
ID:0xa20) prio=5
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java(Compiled Code))
        at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java(Compiled 
Code))
        at java.net.URLClassLoader.defineClass(URLClassLoader.java(Compiled 
Code))
        at java.net.URLClassLoader.access$300(URLClassLoader.java(Compiled 
Code))
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java(Compiled 
Code))
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java(Compiled Code))
        at 
org.eclipse.core.internal.plugins.PluginClassLoader.findClassParentsSelf(PluginC
lassLoader.java(Compiled Code
))
        at 
org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLC
lassLoader.java(Compiled Code
))
        at 
org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLC
lassLoader.java(Compiled Code
))
        at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
        at com.ibm.etools.dtd.util.DTDUtil.populateDTD(DTDUtil.java:345)
        at com.ibm.etools.dtd.util.DTDUtil.populateDTD(DTDUtil.java:270)
        at com.ibm.etools.dtd.util.DTDUtil.parse(DTDUtil.java:123)
        at 
com.ibm.etools.contentmodel.mofimpl.DTDImpl.buildDTDModel(DTDImpl.java:32)
        at 
com.ibm.etools.contentmodel.mofimpl.DTDImpl.buildCMDocument(DTDImpl.java:22)
        at 
com.ibm.etools.contentmodel.mofimpl.CMDocumentBuilderImpl.buildCMDocument(CMDocu
mentBuilderImpl.java:62)
        at 
com.ibm.etools.contentmodel.util.CMDocumentBuilderRegistry.buildCMDocument(CMDoc
umentBuilderRegistry.java:75)

        at 
com.ibm.etools.contentmodel.util.CMDocumentBuilderRegistry.buildCMDocument(CMDoc
umentBuilderRegistry.java:61)

        at 
com.ibm.etools.contentmodel.modelqueryimpl.CMDocumentManagerImpl.buildCMDocument
(CMDocumentManagerImpl.java:1
09)
        at 
com.ibm.etools.contentmodel.modelqueryimpl.CMDocumentManagerImpl$Request.run(CMD
ocumentManagerImpl.java:136)
        at java.lang.Thread.run(Thread.java:498)

    "Thread-24" (TID:0x3023a28, sys_thread_t:0x25de4418, state:CW, native 
ID:0xa24) prio=5
        at 
com.ibm.etools.dtd.meta.impl.MetaDTDFileImpl.initInstance(MetaDTDFileImpl.java:5
4)
        at 
com.ibm.etools.emf.ref.impl.InstantiatorDescriptorImpl.getMetaData(InstantiatorD
escriptorImpl.java(Compiled C
ode))
        at 
com.ibm.etools.dtd.gen.impl.DTDPackageGenImpl.metaDTDFile(DTDPackageGenImpl.java
:128)
        at 
com.ibm.etools.dtd.gen.impl.DTDPackageGenImpl.getEMetaObjects(DTDPackageGenImpl.
java:234)
        at 
com.ibm.etools.emf.ecore.gen.impl.EPackageGenImpl.refValue(EPackageGenImpl.java:
136)
        at 
com.ibm.etools.emf.ref.impl.RefObjectImpl.refSetValueForContainMVReference(RefOb
jectImpl.java:497)
        at 
com.ibm.etools.emf.ecore.gen.impl.EMetaObjectGenImpl.setEPackage(EMetaObjectGenI
mpl.java:85)
        at 
com.ibm.etools.emf.ecore.gen.impl.EDataTypeGenImpl.setEPackage(EDataTypeGenImpl.
java:162)
        at 
com.ibm.etools.dtd.meta.impl.MetaDTDBasicTypeKindImpl.initInstance(MetaDTDBasicT
ypeKindImpl.java:58)
        at 
com.ibm.etools.emf.ref.impl.InstantiatorDescriptorImpl.getMetaData(InstantiatorD
escriptorImpl.java(Compiled C
ode))
        at 
com.ibm.etools.dtd.gen.impl.DTDPackageGenImpl.metaDTDBasicTypeKind(DTDPackageGen
Impl.java:188)
        at 
com.ibm.etools.dtd.impl.DTDPackageImpl.initilaizeStatics(DTDPackageImpl.java:35)
        at com.ibm.etools.dtd.impl.DTDPackageImpl.<init>(DTDPackageImpl.java:30)
        at com.ibm.etools.dtd.impl.DTDPackageImpl.<init>(DTDPackageImpl.java:23)
        at java.lang.Class.newInstance0(Native Method)
        at java.lang.Class.newInstance(Class.java(Compiled Code))
        at 
org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension(Plu
ginDescriptor.java:160)
        at 
org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension(Plu
ginDescriptor.java:189)
        at 
org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension
(ConfigurationElement.java:97
)
        at 
com.ibm.etools.emf.plugin.RegistryReader$PluginClassDescriptor.createInstance(Re
gistryReader.java:118)
        at 
com.ibm.etools.emf.ref.RefRegister.createPackageFromPreRegister(RefRegister.java
:64)
        at 
com.ibm.etools.emf.ref.RefRegister.getPackage(RefRegister.java(Compiled Code))
        at 
com.ibm.etools.dtd.gen.impl.DTDFactoryGenImpl.getPackage(DTDFactoryGenImpl.java:
200)
        at 
com.ibm.etools.dtd.impl.DTDFactoryImpl.instance(DTDFactoryImpl.java:21)
        at com.ibm.etools.dtd.util.DTDUtil.parse(DTDUtil.java:114)
        at 
com.ibm.etools.contentmodel.mofimpl.DTDImpl.buildDTDModel(DTDImpl.java:32)
        at 
com.ibm.etools.contentmodel.mofimpl.DTDImpl.buildCMDocument(DTDImpl.java:22)
        at 
com.ibm.etools.contentmodel.mofimpl.CMDocumentBuilderImpl.buildCMDocument(CMDocu
mentBuilderImpl.java:62)
        at 
com.ibm.etools.contentmodel.util.CMDocumentBuilderRegistry.buildCMDocument(CMDoc
umentBuilderRegistry.java:75)

        at 
com.ibm.etools.contentmodel.util.CMDocumentBuilderRegistry.buildCMDocument(CMDoc
umentBuilderRegistry.java:61)

        at 
com.ibm.etools.contentmodel.modelqueryimpl.CMDocumentManagerImpl.buildCMDocument
(CMDocumentManagerImpl.java:1
09)
        at 
com.ibm.etools.contentmodel.modelqueryimpl.CMDocumentManagerImpl$Request.run(CMD
ocumentManagerImpl.java:136)
        at java.lang.Thread.run(Thread.java:498)

    "Thread-23" (TID:0x3023a70, sys_thread_t:0x25de9778, state:CW, native 
ID:0xad0) prio=5
        at com.ibm.etools.dtd.util.DTDUtil.populateDTD(DTDUtil.java:345)
        at com.ibm.etools.dtd.util.DTDUtil.populateDTD(DTDUtil.java:270)
        at com.ibm.etools.dtd.util.DTDUtil.parse(DTDUtil.java:123)
        at 
com.ibm.etools.contentmodel.mofimpl.DTDImpl.buildDTDModel(DTDImpl.java:32)
        at 
com.ibm.etools.contentmodel.mofimpl.DTDImpl.buildCMDocument(DTDImpl.java:22)
        at 
com.ibm.etools.contentmodel.mofimpl.CMDocumentBuilderImpl.buildCMDocument(CMDocu
mentBuilderImpl.java:62)
        at 
com.ibm.etools.contentmodel.util.CMDocumentBuilderRegistry.buildCMDocument(CMDoc
umentBuilderRegistry.java:75)

        at 
com.ibm.etools.contentmodel.util.CMDocumentBuilderRegistry.buildCMDocument(CMDoc
umentBuilderRegistry.java:61)

        at 
com.ibm.etools.contentmodel.modelqueryimpl.CMDocumentManagerImpl.buildCMDocument
(CMDocumentManagerImpl.java:1
09)
        at 
com.ibm.etools.contentmodel.modelqueryimpl.CMDocumentManagerImpl$Request.run(CMD
ocumentManagerImpl.java:136)
        at java.lang.Thread.run(Thread.java:498)

    "org.eclipse.jdt.internal.ui.text.JavaReconciler" (TID:0x2f0b5b0, 
sys_thread_t:0x25bac148, state:CW, native ID:0xac8
) prio=1
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jdt.internal.ui.text.JavaReconciler$BackgroundThread.run(JavaReconci
ler.java:108)

    "Java indexing: org.eclipse.jdt.internal.core.search.indexing.IndexManager" 
(TID:0x10ef228, sys_thread_t:0x23c6d328,
 state:CW, native ID:0x964) prio=5
        at java.lang.Thread.sleep(Native Method)
        at 
org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:2
27)
        at java.lang.Thread.run(Thread.java:498)

    "Finalizer" (TID:0x8e8708, sys_thread_t:0x8291e0, state:CW, native ID:0xa84) 
prio=8
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java(Compiled 
Code))
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java(Compiled 
Code))
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java(Compiled 
Code))

    "Reference Handler" (TID:0x8e8750, sys_thread_t:0x8252a0, state:CW, native 
ID:0x5b8) prio=10
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:421)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java(Compiled 
Code))

    "Signal dispatcher" (TID:0x8e8798, sys_thread_t:0x7ee940, state:R, native 
ID:0xa60) prio=5

    "main" (TID:0x8e87e0, sys_thread_t:0x235ea0, state:R, native ID:0x89c) 
prio=5
        at org.eclipse.swt.internal.win32.OS.WaitMessage(Native Method)
        at org.eclipse.swt.widgets.Display.sleep(Display.java:1475)
        at 
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.j
ava(Compiled Code))
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:258)
        at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:715)
        at 
org.eclipse.ant.internal.ui.AntLaunchWizard.performFinish(AntLaunchWizard.java:2
90)
        at 
org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:572)
        at 
org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:313)
        at org.eclipse.jface.dialogs.Dialog$1.widgetSelected(Dialog.java:211)
        at 
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:83)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java(Compiled 
Code))
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:634)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1282)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1092)
        at org.eclipse.jface.window.Window.runEventLoop(Window.java:536)
        at org.eclipse.jface.window.Window.open(Window.java:523)
        at 
org.eclipse.ant.internal.ui.RunAntActionDelegate.run(RunAntActionDelegate.java:7
9)
        at org.eclipse.ui.internal.PluginAction.run(PluginAction.java:125)
Comment 1 Barry Searle CLA 2002-05-17 08:19:26 EDT
Created attachment 863 [details]
javacore dump from hang
Comment 2 John Arthorne CLA 2002-05-20 10:57:15 EDT
What a mess!

There seem to be four "active" threads, two are classloading, and two are doing 
other things.  It is not clear that this is "our fault".  Classloading always 
happens in a critical region, so it will always have some lock acquired during 
this process.  I don't know what has caused the other two threads to be blocked. 
 Why are there so many threads trying to work at once?  The deadlock could be 
caused by that DTD tooling code, since three of the threads are running code in 
"com.ibm.etools.dtd.".  I suggest that someone who is familiar with that 
(WSAD?) code  should take a look at those stack traces and figure out what is 
happening.
Comment 3 DJ Houghton CLA 2002-09-27 09:55:09 EDT
This is being investigated by WSAD.
Please re-open if you determine this is a Platform problem.
Comment 4 Barry Searle CLA 2006-11-06 11:24:26 EST
old bug.  closing.