[ 
https://issues.apache.org/jira/browse/SLING-3189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13800495#comment-13800495
 ] 

Felix Meschberger commented on SLING-3189:
------------------------------------------

Reading [1] I wonder whether this might be an approach to the problem: Can we 
make sure to only do minimal, default, setup in 
StaticLoggerBinder.SINGLETON.getLoggerFactory() such as to not do any further 
class loading and then have the "commons log" activator do the actual heavy 
listing configuration ?

Apart from it being nice to solve this problem, I hope this is a corner case -- 
Logback intialization caused by a paralell thread causing deadlock between 
Logback and classloaders. And we can also mitigate this by moving the jetty 
bundle to another start level, which should actually be the case ?

[1] http://logback.qos.ch/manual/configuration.html#joranDirectly

> LogbackManager causes lockup on second startup
> ----------------------------------------------
>
>                 Key: SLING-3189
>                 URL: https://issues.apache.org/jira/browse/SLING-3189
>             Project: Sling
>          Issue Type: Bug
>          Components: Commons
>    Affects Versions: Commons Log 3.0.2
>            Reporter: Bertrand Delacretaz
>         Attachments: SLING-3189.stack.txt
>
>
> Looks like I didn't test yesterday's SLING-3185 fix thoroughly enough, I'm 
> seeing a system lockup on second startup of the current trunk launchpad.
> Steps to reproduce:
> 1. Start launchpad/builder runnable jar with no existing sling folder, Sling 
> starts fine.
> 2. Stop and restart.
> 3. Sling doesn't start, the BundleWiringImpl waits forever on a classloading 
> call triggered by StaticLoggerBinder.getSingleton()
> Stack trace:
> Daemon Thread [FelixStartLevel] (Suspended)   
>       owns: BundleWiringImpl$BundleClassLoaderJava5  (id=40)  
>       waiting for: HashMap<K,V>  (id=41)      
>       Object.wait(long) line: not available [native method]   
>       HashMap<K,V>(Object).wait() line: 485   
>       
> BundleWiringImpl$BundleClassLoaderJava5(BundleWiringImpl$BundleClassLoader).findClass(String)
>  line: 2050        
>       BundleWiringImpl.findClassOrResourceByDelegation(String, boolean) line: 
> 1472    
>       BundleWiringImpl.access$400(BundleWiringImpl, String, boolean) line: 75 
>       
> BundleWiringImpl$BundleClassLoaderJava5(BundleWiringImpl$BundleClassLoader).loadClass(String,
>  boolean) line: 1923       
>       BundleWiringImpl$BundleClassLoaderJava5(ClassLoader).loadClass(String) 
> line: 247        
>       LogbackManager.ensureSlf4jIsInitialized() line: 147     
>       LogbackManager.<init>(BundleContext) line: 103  
>       Activator.start(BundleContext) line: 55 



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to