Deadlock issue remote slaves

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Type: Bug
    • Resolution: Not A Defect
    • Priority: Critical
    • Component/s: core
    • Environment:
      Linux Master runing programs on Windows slaves
      Verified in Jenkins 1.480.1 and Jenkins 1.509.1

      Jenkins slaves running on Windows have a tendency to deadlock when programs are sending a lot of data simultaneously.

      Reading the threaddump from VisualVM we can see that proc.java tries to
      write to deadlock stream resulting in hanging builds

      String msg = "Process leaked file descriptors. See http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build for more information";
      Throwable e = new Exception().fillInStackTrace();
      LOGGER.log(Level.WARNING,msg,e);
      
      "pool-1-thread-833" - Thread t@1926010
         java.lang.Thread.State: BLOCKED
      	at java.util.logging.StreamHandler.publish(Unknown Source)
      	- waiting to lock <1502546> (a java.util.logging.ConsoleHandler) owned by "pool-1-thread-927" t@1926604
      	at java.util.logging.ConsoleHandler.publish(Unknown Source)
      	at java.util.logging.Logger.log(Unknown Source)
      	at java.util.logging.Logger.doLog(Unknown Source)
      	at java.util.logging.Logger.log(Unknown Source)
      	at hudson.Proc$LocalProc.join(Proc.java:330)
      	at hudson.Launcher$RemoteLaunchCallable$1.join(Launcher.java:993)
      	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.lang.reflect.Method.invoke(Unknown Source)
      	at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:275)
      	at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:256)
      	at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:215)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      	at hudson.remoting.Request$2.run(Request.java:326)
      	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at hudson.remoting.Engine$1$1.run(Engine.java:58)
      	at java.lang.Thread.run(Unknown Source)
      

            Assignee:
            Unassigned
            Reporter:
            Marcus Jacobsson
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: