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.