Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-18011

Deadlock issue remote slaves

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not A Defect
    • Icon: Critical Critical
    • core
    • 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)
      

            Unassigned Unassigned
            hanabishi Marcus Jacobsson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: