the support-core plugin causes classes to be loaded via remoting during logging.
This can lead to an intresting deadlock as classload itself causes logging and you can get into a situation where the logging causes classloading - but the class loader needs to log but can't as it is blocked trying to load the class.
support-core should not rely on libraries external to the plugin or the JDK.
"pool-1-thread-1 for CLI connection to https://cloudbees.ci.cloudbees.com" prio=10 tid=0x00007f3f2c04d800 nid=0x6d6f waiting for monitor entry [0x00007f3f2b9b8000] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.commons.lang.time.FastDateFormat$PaddedNumberField.appendTo(FastDateFormat.java:1306) at org.apache.commons.lang.time.FastDateFormat$PaddedNumberField.appendTo(FastDateFormat.java:1288) at org.apache.commons.lang.time.FastDateFormat.applyRules(FastDateFormat.java:890) at org.apache.commons.lang.time.FastDateFormat.format(FastDateFormat.java:821) at com.cloudbees.jenkins.support.SupportLogFormatter.format(SupportLogFormatter.java:52) at com.cloudbees.jenkins.support.SupportLogHandler.publish(SupportLogHandler.java:99) at java.util.logging.Logger.log(Logger.java:616) at java.util.logging.Logger.doLog(Logger.java:641) at java.util.logging.Logger.log(Logger.java:730) at hudson.remoting.Request$2.run(Request.java:344) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) "Channel reader thread: CLI connection to https://cloudbees.ci.cloudbees.com / waiting for hudson.remoting.Channel@64c53235:CLI connection to https://cloudbees.ci.cloudbees.com" prio=10 tid=0x00007f3f4c332000 nid=0x6d6e in Object.wait() [0x00007f3f2bab8000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000bb751e28> (a hudson.remoting.RemoteInvocationHandler$RPCRequest) at hudson.remoting.Request.call(Request.java:146) - locked <0x00000000bb751e28> (a hudson.remoting.RemoteInvocationHandler$RPCRequest) at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:182) at com.sun.proxy.$Proxy2.fetch2(Unknown Source) at hudson.remoting.DumbClassLoaderBridge.fetch2(DumbClassLoaderBridge.java:40) at hudson.remoting.DumbClassLoaderBridge.fetch3(DumbClassLoaderBridge.java:52) at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:157) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) - locked <0x00000000ce9a0078> (a hudson.remoting.RemoteClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at org.apache.commons.lang.time.FastDateFormat$PaddedNumberField.appendTo(FastDateFormat.java:1306) at org.apache.commons.lang.time.FastDateFormat$PaddedNumberField.appendTo(FastDateFormat.java:1288) at org.apache.commons.lang.time.FastDateFormat.applyRules(FastDateFormat.java:890) at org.apache.commons.lang.time.FastDateFormat.format(FastDateFormat.java:821) at com.cloudbees.jenkins.support.SupportLogFormatter.format(SupportLogFormatter.java:52) at com.cloudbees.jenkins.support.SupportLogHandler.publish(SupportLogHandler.java:99) at java.util.logging.Logger.log(Logger.java:616) at java.util.logging.Logger.doLog(Logger.java:641) at java.util.logging.Logger.log(Logger.java:730) at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:68) "main / waiting for hudson.remoting.Channel@64c53235:CLI connection to https://cloudbees.ci.cloudbees.com" prio=10 tid=0x00007f3f4c00a000 nid=0x6d63 in Object.wait() [0x00007f3f55cfc000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000ce9a0358> (a hudson.remoting.UserRequest) at hudson.remoting.Request.call(Request.java:146) - locked <0x00000000ce9a0358> (a hudson.remoting.UserRequest) at hudson.remoting.Channel.call(Channel.java:752) at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:179) at com.sun.proxy.$Proxy3.main(Unknown Source) at hudson.cli.CLI.execute(CLI.java:336) at hudson.cli.CLI._main(CLI.java:501) at hudson.cli.CLI.main(CLI.java:387)
- links to