The irony of this was that I first looked at this yesterday while sitting in a 
session at WJAX entitled “Concurrency: The Good, The Bad, The Ugly”.   :-(

The GOOD news is this won’t occur with 3.0/trunk.  The QueryHandlers are gone 
and thus the one lookup wouldn’t happen.


It seems like your setup starts processing requests before all the endpoints 
are fully published.   That’s not a problem per say, but it is causing this.

The JettyHTTPDestination likely could grab the QueryHandlerRegistry and stuff 
during it’s constructor to pre-cache the stuff it knows it’s going to need.   
That may end up working around this.   That’s won’t fix the same issue with the 
ServletController though.   Need to think about it a bit more.

My gut feeling is the synchronized blocks in ExtensionManagerImpl are too 
coarse.   I’ll try and look at this a bit on the plane back to the US.


Dan


On Nov 6, 2013, at 11:32 PM, Jason Pell <[email protected]> wrote:

> Hi,
> 
> I am continuing to try and understand the thread dump myself, but here it
> is in case anyone feels like giving me some pointers :-)
> 
> http://pastebin.com/p75BtvPk
> 
> 
> On Thu, Nov 7, 2013 at 9:22 AM, Jason Pell <[email protected]> wrote:
> 
>> Hi,
>> 
>> I am getting intermittent dead lock on startup of my application.  The two
>> threads that are locking are accessing:
>> 
>> java.lang.Thread.State: BLOCKED (on object monitor)
>> INFO   | jvm 1    | 2013/11/07 08:50:30 |     at
>> org.apache.cxf.bus.extension.ExtensionManagerImpl.getExtension(ExtensionManagerImpl.java:257)
>> INFO   | jvm 1    | 2013/11/07 08:50:30 |     - waiting to lock
>> <0x00000007ee31c6b0> (a org.apache.cxf.bus.extension.ExtensionManagerImpl)
>> 
>> And...
>> 
>>  java.lang.Thread.State: BLOCKED (on object monitor)
>> INFO   | jvm 1    | 2013/11/07 08:50:29 |     at
>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:181)
>> 
>> 
>> We did not notice this with spring 3.1.2
>> 
>> We also don't get this all the time.  None of our developers get it on
>> their Linux Mint based machines, but we do on Centos 6.3.
>> 
>> But the JVMs are exactly the same - both 64bit and actually the same tar
>> ball.
>> 
>> 
>> 

-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to