<div dir="auto">Is there any workaround for this so that I can avoid this contention flow? </div><br><div class="gmail_quote"><div dir="ltr">On Thu 13 Sep, 2018, 12:31 AM Debraj Manna, <<a href="mailto:subharaj.manna@gmail.com">subharaj.manna@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr">Filed <a href="https://jira.qos.ch/browse/LOGBACK-1421" target="_blank" rel="noreferrer">https://jira.qos.ch/browse/LOGBACK-1421</a></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Sep 12, 2018 at 10:44 PM ceki <<a href="mailto:ceki@qos.ch" target="_blank" rel="noreferrer">ceki@qos.ch</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Hi Debraj, </div><div><br></div><div>Can you please create a JiRA issue for the deadlock you describe?</div><div>--</div><div>Ceki Gülcü</div><div><br></div><div><br></div><div><br></div><div id="m_-5397264507301143464m_-5415685678910406796composer_signature"><div style="font-size:85%;color:#575757" dir="auto">Sent from my Samsung Galaxy smartphone.</div></div><div style="font-size:100%;color:#000000"><div>-------- Original message --------</div><div>From: Debraj Manna <<a href="mailto:subharaj.manna@gmail.com" target="_blank" rel="noreferrer">subharaj.manna@gmail.com</a>> </div><div>Date: 9/12/2018  18:21  (GMT+01:00) </div><div>To: <a href="mailto:logback-user@qos.ch" target="_blank" rel="noreferrer">logback-user@qos.ch</a> </div><div>Subject: [logback-user] Logback 1.2.3 threads getting deadlocked </div><div><br></div></div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">I am observing logback 1.2.3 getting stuck with stacktrace like below . In case the email gets truncated I am also placing the above logs in the below <a href="https://gist.github.com/debraj-manna/d3b8de557ae3514368ab66b947d0ed14" target="_blank" rel="noreferrer">gist</a> . </div><div dir="ltr"><br></div><div dir="ltr"><a href="https://gist.github.com/debraj-manna/d3b8de557ae3514368ab66b947d0ed14" target="_blank" rel="noreferrer">https://gist.github.com/debraj-manna/d3b8de557ae3514368ab66b947d0ed14</a><br></div><div dir="ltr"><br></div><div dir="ltr">I am using java 8</div><div dir="ltr"><div><br></div><div><div><font face="monospace, monospace" size="1">Schedule_CISCON9K_10.22.8.7_config_OpMgr-0" #874742 prio=5 os_prio=0 tid=0x00007fff54789000 nid=0x31f0 waiting for monitor entry [0x00007fff0e323000]</font></div><div><font face="monospace, monospace" size="1">   java.lang.Thread.State: BLOCKED (on object monitor)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.core.util.CachingDateFormatter.format(CachingDateFormatter.java:45)</font></div><div><font face="monospace, monospace" size="1">        - waiting to lock <0x00000006488ca358> (a ch.qos.logback.core.util.CachingDateFormatter)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.classic.pattern.DateConverter.convert(DateConverter.java:61)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.classic.pattern.DateConverter.convert(DateConverter.java:23)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.core.pattern.FormattingConverter.write(FormattingConverter.java:36)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.core.pattern.PatternLayoutBase.writeLoopOnConverters(PatternLayoutBase.java:115)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.classic.PatternLayout.doLayout(PatternLayout.java:141)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.classic.PatternLayout.doLayout(PatternLayout.java:39)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.core.encoder.LayoutWrappingEncoder.encode(LayoutWrappingEncoder.java:115)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:230)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)</font></div><div><font face="monospace, monospace" size="1">        at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)</font></div><div><font face="monospace, monospace" size="1">        at <a href="http://ch.qos.logback.classic.Logger.info" target="_blank" rel="noreferrer">ch.qos.logback.classic.Logger.info</a>(Logger.java:579)</font></div><div><font face="monospace, monospace" size="1">        at com.van.dataproviders.core.impl.cas.n5k.tasks.N5KSynchronousTask.doRun(N5KSynchronousTask.java:63)</font></div><div><font face="monospace, monospace" size="1">        at com.van.dataproviders.core.common.impl.dataprovider.tasks.AbstractTask.run(AbstractTask.java:104)</font></div><div><font face="monospace, monospace" size="1">        at com.van.dataproviders.tasker.Tasker$ScheduledTaskWrapper.run(Tasker.java:359)</font></div><div><font face="monospace, monospace" size="1">        at com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator$NeverSuccessfulListenableFutureTask.run(MoreExecutors.java:678)</font></div><div><font face="monospace, monospace" size="1">        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)</font></div><div><font face="monospace, monospace" size="1">        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)</font></div><div><font face="monospace, monospace" size="1">        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)</font></div><div><font face="monospace, monospace" size="1">        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)</font></div><div><font face="monospace, monospace" size="1">        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)</font></div></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="arial, helvetica, sans-serif">Most thread trying to write to log are blocked on a `synchronize(this)` lock in `CachingDateFormatter` of logback.</font></div><div><font face="arial, helvetica, sans-serif">But another thread, which actually has the above lock (thus blocking the other threads) is itself blocked as follows: </font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><div><font face="monospace, monospace" size="1">"Schedule_CISCON9K_10.22.8.149_metric_OpMgr-0" #871618 prio=5 os_prio=0 tid=0x00007fff54740800 nid=0x7e56 waiting for monitor entry [0x00007fff15f1a000]</font></div><div><font face="monospace, monospace" size="1">   java.lang.Thread.State: BLOCKED (on object monitor)</font></div><div><font face="monospace, monospace" size="1">    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1333)</font></div><div><font face="monospace, monospace" size="1">    at java.util.ResourceBundle.getBundle(ResourceBundle.java:899)</font></div><div><font face="monospace, monospace" size="1">    at sun.util.resources.LocaleData$1.run(LocaleData.java:167)</font></div><div><font face="monospace, monospace" size="1">    at sun.util.resources.LocaleData$1.run(LocaleData.java:163)</font></div><div><font face="monospace, monospace" size="1">    at java.security.AccessController.doPrivileged(Native Method)</font></div><div><font face="monospace, monospace" size="1">    at sun.util.resources.LocaleData.getBundle(LocaleData.java:163)</font></div><div><font face="monospace, monospace" size="1">    at sun.util.resources.LocaleData.getDateFormatData(LocaleData.java:127)</font></div><div><font face="monospace, monospace" size="1">    at java.text.DateFormatSymbols.initializeData(DateFormatSymbols.java:710)</font></div><div><font face="monospace, monospace" size="1">    at java.text.DateFormatSymbols.<init>(DateFormatSymbols.java:145)</font></div><div><font face="monospace, monospace" size="1">    at sun.util.locale.provider.DateFormatSymbolsProviderImpl.getInstance(DateFormatSymbolsProviderImpl.java:85)</font></div><div><font face="monospace, monospace" size="1">    at java.text.DateFormatSymbols.getProviderInstance(DateFormatSymbols.java:364)</font></div><div><font face="monospace, monospace" size="1">    at java.text.DateFormatSymbols.getInstance(DateFormatSymbols.java:340)</font></div><div><font face="monospace, monospace" size="1">    at java.util.Calendar.getDisplayName(Calendar.java:2110)</font></div><div><font face="monospace, monospace" size="1">    at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1125)</font></div><div><font face="monospace, monospace" size="1">    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:966)</font></div><div><font face="monospace, monospace" size="1">    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936)</font></div><div><font face="monospace, monospace" size="1">    at java.text.DateFormat.format(DateFormat.java:345)</font></div><div><font face="monospace, monospace" size="1">    at ch.qos.logback.core.util.CachingDateFormatter.format(CachingDateFormatter.java:48)</font></div><div><font face="monospace, monospace" size="1">    - locked <0x00000006488ca358> (a ch.qos.logback.core.util.CachingDateFormatter)</font></div><div><font face="monospace, monospace" size="1">    at ch.qos.logback.classic.pattern.DateConverter.convert(DateConverter.java:61)</font></div></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="arial, helvetica, sans-serif">Loback.xml</font></div><div><font face="monospace, monospace" size="1"><div><configuration scan="true" debug="true"></div><div>    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"></div><div>        <Target>System.out</Target></div><div>        <encoder></div><div>            <pattern>%p [%d{yyyy-MM-dd HH:mm:ss,SSS}] %c{3}:[%C{1}:%M:%L] - [%t] - %replace(%.-20480m){'[^A-Za-z0-9=&lt;&gt;:@/.,"\'\-\[\]\{\}\(\)\n\s!|]','_'}%n</pattern></div><div>        </encoder></div><div>    </appender></div><div><br></div><div>    <root level="INFO"></div><div>        <appender-ref ref="CONSOLE"/></div><div>    </root></div><div></configuration></div></font></div></div></div></div></div></div></div>
</div></blockquote></div>
</blockquote></div>