Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 316405 - Thread deadlock between KernelBundleClassLoader and ChainedClassloader during classloading
Summary: Thread deadlock between KernelBundleClassLoader and ChainedClassloader during...
Status: CLOSED FIXED
Alias: None
Product: Virgo
Classification: RT
Component: unknown (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-06-09 22:01 EDT by blahb Mising name CLA
Modified: 2010-06-10 10:31 EDT (History)
2 users (show)

See Also:


Attachments
Stack trace dump. (12.69 KB, text/plain)
2010-06-09 22:05 EDT, blahb Mising name CLA
dyfxos8d: review?
Details

Note You need to log in before you can comment on or make changes to this bug.
Description blahb Mising name CLA 2010-06-09 22:01:57 EDT
Build Identifier: 2.0.2.RELEASE

Within 10-15 minutes of running our webapp bundle under significant load, we experience a thread deadlock which makes the process unresponsive to any HTTP requests or JMX connections. The deadlock seems to be in platform classloading code before our bundle code has been placed on the stack for responding to the HTTP request.

This is repeatable under SpringSource DM Server 2.0.2.RELEASE, and I've logged it there, but it appears that this issue tracker may be replacing that one; I'm not sure where to log it.  Sorry.

Attached is the thread deadlock information from the automatically generated dumps.

Reproducible: Always

Steps to Reproduce:
1. Deploy webapp bundle.
2. Load it heavily with traffic.
3. Wait for thread deadlock in classloaders.
Comment 1 blahb Mising name CLA 2010-06-09 22:05:01 EDT
Created attachment 171600 [details]
Stack trace dump.
Comment 2 blahb Mising name CLA 2010-06-09 22:19:11 EDT
Cross-reference to bug in SpringSource issue tracker:
https://issuetracker.springsource.com/browse/DMS-2651
Comment 3 Glyn Normington CLA 2010-06-10 10:31:48 EDT
The deadlock is caused by an alien call in ChainedClassLoader. The fix is to remove synchronisation from this class. The class is immutable and therefore thread safe without synchronisation.

This fix should be included in 2.1.0.M1.