Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 354844

Summary: Secure Storage Dialog Hangs upon launching Eclipse
Product: [Eclipse Project] Equinox Reporter: passmasterml
Component: FrameworkAssignee: equinox.framework-inbox <equinox.framework-inbox>
Status: CLOSED DUPLICATE QA Contact:
Severity: normal    
Priority: P3 CC: cpjunk, john.arthorne, ob1.eclipse, remy.suen, tjwatson
Version: 3.7   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
A thread dump of eclipse at the time of the hang
none
Relevant eclipse log
none
Eclipse Helios stack dump on hang. none

Description passmasterml CLA 2011-08-16 11:01:11 EDT
Build Identifier: 20110615-0604

Eclipse opens, and a second or two later the secure storage dialog pops up and locks up (i.e. you can't type in anything, it just hangs), making everything unresponsive. A workaround (unacceptable, as a lot of workspace information is lost) for now is to delete the .metadata/.plugins. I've attached a thread dump

Reproducible: Sometimes
Comment 1 passmasterml CLA 2011-08-16 11:02:36 EDT
Created attachment 201583 [details]
A thread dump of eclipse at the time of the hang
Comment 2 passmasterml CLA 2011-08-16 11:39:19 EDT
Created attachment 201586 [details]
Relevant eclipse log
Comment 3 Oleg Besedin CLA 2011-08-16 12:06:04 EDT
This is a weird stack. Does it happen on Eclipse 4.1 or 3.7 or 3.6 ?

Tom, does this look like the class-loading issue to be fixed by Java 7?


"main" prio=10 tid=0x00007faec0006800 nid=0x7dc9 waiting for monitor entry [0x00007faec6aaa000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:477)
	- waiting to lock <0x00007fae417361e0> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader)
Comment 4 passmasterml CLA 2011-08-16 12:11:51 EDT
(In reply to comment #3)
> This is a weird stack. Does it happen on Eclipse 4.1 or 3.7 or 3.6 ?
> 
> Tom, does this look like the class-loading issue to be fixed by Java 7?
> 
> 
> "main" prio=10 tid=0x00007faec0006800 nid=0x7dc9 waiting for monitor entry
> [0x00007faec6aaa000]
>    java.lang.Thread.State: BLOCKED (on object monitor)
>     at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:477)
>     - waiting to lock <0x00007fae417361e0> (a
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader)

This is happening with Indigo, I've also seen it with 3.6 and 3.5, though I don't have the thread dumps from those versions.
Comment 5 Thomas Watson CLA 2011-08-16 17:06:17 EDT
(In reply to comment #3)
> This is a weird stack. Does it happen on Eclipse 4.1 or 3.7 or 3.6 ?
> 
> Tom, does this look like the class-loading issue to be fixed by Java 7?
> 

Yes it does.  I am marking as dup of bug212262.  This type of deadlock can only be handled by the framework if running on Java 7 or later.

I did not analyze the team code.  There could be something the team bundle(s) are doing in their activator that increases the window for this hang to happen.  It seems there is some job running in the background that gets initiated before the activator of the team bundle is able to finish starting?  If that is the case then perhaps the job initiation/running can be delayed until later.

*** This bug has been marked as a duplicate of bug 212262 ***
Comment 6 Corey Puffalt CLA 2011-09-20 13:41:52 EDT
I have identical symptoms but don't see anything indicating a classloader deadlock in my stacktrace.  This is from Helios.  (See attachment.)
Comment 7 Corey Puffalt CLA 2011-09-20 13:43:37 EDT
Created attachment 203702 [details]
Eclipse Helios stack dump on hang.
Comment 8 Corey Puffalt CLA 2011-09-20 13:50:07 EDT
I also found a discussion of this same problem on Stackoverflow (http://stackoverflow.com/questions/2621081/eclipse-galileo-not-responding-ubuntu-64-bit) with a slightly better workaround than is mentioned above.  Simply delete ~/.eclipse/org.eclipse.equinox.security/secure_storage resulting in less data loss.