Hi,

since the update from 6.5.x to 6.6.x we have been dealing with a deadlock 
problem. 

The reason is that com.zaxxer.hikari.pool.ProxyLeakTask sometimes tries to 
log a Warning about database pool leakage (when tomcat starts), but this 
log is passed through code to 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton
 
when the deadlock occurs.

*Thread1*
Deadlock found :-
"main" Id=1 in BLOCKED on lock=java.lang.String@181bb00b
     owned by 6319096d-f634-47dd-9a79-f420f35dc17e housekeeper Id=7208
    at 
org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.getBean(GenericScope.java:375)
    at 
org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:179)
    at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:371)
    at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)

*Thread 2:*
Id=7208 in BLOCKED on lock=java.util.concurrent.ConcurrentHashMap@5a2fa6f3
     owned by main Id=1
    at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:216)
    at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
    at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    at 
org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
    at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1609)
...
    at 
[email protected]/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
    at 
org.apereo.cas.util.text.TicketCatalogMessageSanitationContributor.getTicketIdentifierPrefixes(TicketCatalogMessageSanitationContributor.java:30)
    at 
org.apereo.cas.config.CasCoreUtilConfiguration$CasCoreUtilEssentialConfiguration$$Lambda$1525/0x0000000100ef7c40.apply(Unknown
 
Source)
...
    at 
[email protected]/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
    at 
org.apereo.cas.config.CasCoreUtilConfiguration$CasCoreUtilEssentialConfiguration.messageSanitizer(CasCoreUtilConfiguration.java:168)
    at 
[email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
...
    at 
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1163)
    at 
org.apereo.cas.util.spring.ApplicationContextProvider.getMessagSanitizer(ApplicationContextProvider.java:208)
    at 
org.apereo.cas.logging.LoggingUtils.prepareLogEvent(LoggingUtils.java:28)
    at org.apereo.cas.logging.CasAppender.append(CasAppender.java:80)
    at 
org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:161)
...
    at 
org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1891)
    at org.apache.logging.slf4j.Log4jLogger.warn(Log4jLogger.java:254)
    at com.zaxxer.hikari.pool.ProxyLeakTask.run(ProxyLeakTask.java:84)
    at 
[email protected]/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)


For now, we have disabled logging com.zaxxer.hikari.pool.ProxyLeakTask. 
Does anyone have any idea how to solve this properly?

Thanks
Milan Siebenbürger

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/a574c172-c199-4ee7-8023-ec79c4bfd497n%40apereo.org.

Reply via email to