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 
java.base@11.0.16/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 
java.base@11.0.16/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
    at 
org.apereo.cas.config.CasCoreUtilConfiguration$CasCoreUtilEssentialConfiguration.messageSanitizer(CasCoreUtilConfiguration.java:168)
    at 
java.base@11.0.16/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 
java.base@11.0.16/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 cas-user+unsubscr...@apereo.org.
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