Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-dev] A dead lock situation


Fixed in 3.0 development stream:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=36358
--



"jml" <jml@xxxxxxxx>
Sent by: platform-dev-admin@xxxxxxxxxxx

09/17/2003 05:41 AM
Please respond to platform-dev

       
        To:        <platform-dev@xxxxxxxxxxx>, <platform-ui-dev@xxxxxxxxxxx>
        cc:        
        Subject:        [platform-dev] A dead lock situation



Hi,
I was doing unit test development on 2.1.1, and found an interesting
deadlock situation.

The two deadlocked threads have the following stack trace.

It seemed that the main thread hold a lock on the PluginClassLoader and
wants a lock on PluginDescriptor, while the other hold lock on
PluginDescriptor and wants the lock on the ClassLoader.

jml



Thread [main] (Suspended)
PluginDescriptor.isPluginActivated() line: 758
PluginClassLoader.internalFindClassParentsSelf(String, boolean,
DelegatingURLClassLoader, boolean) line: 164

PluginClassLoader(DelegatingURLClassLoader).findClassParentsSelf(String,
boolean, DelegatingURLClassLoader, boolean) line: 485
PluginClassLoader(DelegatingURLClassLoader).loadClass(String, boolean,
DelegatingURLClassLoader, Vector, boolean) line: 882
DelegatingURLClassLoader.access$0(DelegatingURLClassLoader, String,
boolean, DelegatingURLClassLoader, Vector, boolean) line: 876
DelegatingURLClassLoader$DelegateLoader.loadClass(String,
DelegatingURLClassLoader, DelegatingURLClassLoader, Vector) line: 90

PluginClassLoader(DelegatingURLClassLoader).findClassPrerequisites(Strin
g, DelegatingURLClassLoader, Vector) line: 554
PluginClassLoader(DelegatingURLClassLoader).loadClass(String, boolean,
DelegatingURLClassLoader, Vector, boolean) line: 890
PluginClassLoader(DelegatingURLClassLoader).loadClass(String, boolean)
line: 862
PluginClassLoader(ClassLoader).loadClass(String) line: 255 [local
variables unavailable]
PluginClassLoader(ClassLoader).loadClassInternal(String) line: 315
[local variables unavailable]
Class.forName0(String, boolean, ClassLoader) line: not available
[native method]
Class.forName(String) line: 140 [local variables unavailable]
EclipseContextTestSuite.<init>() line: 34
EclipseContextTestSuite.suite() line: 27
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 [local
variables unavailable]
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 [local
variables unavailable]
Method.invoke(Object, Object[]) line: 324 [local variables unavailable]
EclipseTestRunner.getTest(String) line: 238
EclipseTestRunner.<init>(JUnitTest, String, boolean, boolean) line: 200
EclipseTestRunner.main(String[]) line: 184
UITestApplication.runTests(String[]) line: 39
UITestApplication.runEventLoop(Window$IExceptionHandler) line: 33
UITestApplication(Workbench).run(Object) line: 1385
InternalBootLoader.run(String, URL, String, String[], Runnable) line:
845
BootLoader.run(String, URL, String, String[], Runnable) line: 461
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 [local
variables unavailable]
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 [local
variables unavailable]
Method.invoke(Object, Object[]) line: 324 [local variables unavailable]
Main.basicRun(String[]) line: 291
Main.run(String[]) line: 747
Main.main(String[]) line: 583




Thread [Thread-1] (Suspended)
Class.getDeclaredConstructors0(boolean) line: not available [native
method]
Class.privateGetDeclaredConstructors(boolean) line: 1590 [local
variables unavailable]
Class.getConstructor0(Class[], int) line: 1762 [local variables
unavailable]
Class.getConstructor(Class[]) line: 1002 [local variables unavailable]
PluginDescriptor.internalDoPluginActivation() line: 701
PluginDescriptor.doPluginActivation() line: 188
PluginDescriptor.getPlugin() line: 301
Workbench$15.run() line: 1325
InternalPlatform.run(ISafeRunnable) line: 889
Platform.run(ISafeRunnable) line: 413
Workbench$14.run() line: 1334
Thread.run() line: 536 [local variables unavailable]

_______________________________________________
platform-dev mailing list
platform-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/platform-dev


Back to the top