Log4j and javax.mail are deadlocking
Issue
-
JBoss became unresponsive. Thread dumps show it was due to threads deadlocking between log4j SMTP appenders and direct usage of javax.mail from the application:
"WorkManager(2)-1" J9VMThread:0x000000011877C800, j9thread_t:0x0000000118754320, java/lang/Thread:0x070000003BD50160, state:B, prio=5 (native thread ID:0x36C0D9, native priority:0x5, native policy:UNKNOWN) Java callstack: at org/apache/log4j/Category.callAppenders(Category.java:201(Compiled Code)) at org/apache/log4j/Category.forcedLog(Category.java:388(Compiled Code)) at org/apache/log4j/Category.log(Category.java:849(Compiled Code)) at org/jboss/logbridge/LogBridgeHandler.publish(LogBridgeHandler.java:72(Compiled Code)) at java/util/logging/Logger.log(Logger.java:1121(Compiled Code)) at java/util/logging/Logger.log(Logger.java:1021(Compiled Code)) at com/sun/activation/registries/LogSupport.log(LogSupport.java:73) at javax/activation/MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:548) at javax/activation/DataHandler.getDataContentHandler(DataHandler.java:625) at javax/activation/DataHandler.writeTo(DataHandler.java:329) at javax/mail/internet/MimeUtility.getEncoding(MimeUtility.java:264) at javax/mail/internet/MimeBodyPart.updateHeaders(MimeBodyPart.java:1299) at javax/mail/internet/MimeMessage.updateHeaders(MimeMessage.java:2071) at javax/mail/internet/MimeMessage.saveChanges(MimeMessage.java:2039) at javax/mail/Transport.send(Transport.java:119) at com/package/Helper.sendDeadlockingMail(Helper.java:166) "WorkerThread#2[10.2.52.204:58412]" J9VMThread:0x0000000119B48400, j9thread_t:0x0000000119914A80, java/lang/Thread:0x070000003C6E2AE0, state:B, prio=5 (native thread ID:0x2C508B, native priority:0x5, native policy:UNKNOWN) Java callstack: at javax/activation/DataHandler.getDataContentHandler(DataHandler.java:625) at javax/activation/DataHandler.writeTo(DataHandler.java:329) at javax/mail/internet/MimeUtility.getEncoding(MimeUtility.java:264) at javax/mail/internet/MimeBodyPart.updateHeaders(MimeBodyPart.java:1299) at javax/mail/internet/MimeBodyPart.updateHeaders(MimeBodyPart.java:1008) at javax/mail/internet/MimeMultipart.updateHeaders(MimeMultipart.java:414) at javax/mail/internet/MimeBodyPart.updateHeaders(MimeBodyPart.java:1285) at javax/mail/internet/MimeMessage.updateHeaders(MimeMessage.java:2071) at javax/mail/internet/MimeMessage.saveChanges(MimeMessage.java:2039) at javax/mail/Transport.send(Transport.java:119) at org/apache/log4j/net/SMTPAppender.sendBuffer(Bytecode PC:216) at org/apache/log4j/net/SMTPAppender.append(Bytecode PC:56) at org/apache/log4j/AppenderSkeleton.doAppend(AppenderSkeleton.java:230(Compiled Code)) at org/apache/log4j/helpers/AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65(Compiled Code)) at org/apache/log4j/Category.callAppenders(Category.java:203(Compiled Code)) at org/apache/log4j/Category.forcedLog(Category.java:388(Compiled Code)) at org/apache/log4j/Category.error(Category.java:302)
Environment
- JBoss Enterprise Application Platform
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
