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

Bounds exceeds available space exception after successful build-step

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • core, remoting
    • Master on RHEL7.6
      Worker on MacOS Big Sur
      Jenkins 2.249.3
    • 2.297, 2.287.2

      As previously reported in JENKINS-6423, I have an exception after my build successfully completes. It only started happening this weekend, only on the Mac worker, right after I updated to Big Sur... It doesn't happen to every build, just seemingly random across jobs. It also doesn't always happen after the whole job is finished, it can happen after X out of Y steps.

      20:53:05.897 FATAL: Bounds exceeds available space : size=1048576, offset=1048577
      20:53:05.898 Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to worker-mobile-01
      20:53:05.898 		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1800)
      20:53:05.898 		at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:357)
      20:53:05.898 		at hudson.remoting.Channel.call(Channel.java:1001)
      20:53:05.898 		at hudson.Launcher$RemoteLauncher.kill(Launcher.java:1147)
      20:53:05.898 		at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:510)
      20:53:05.898 		at hudson.model.Run.execute(Run.java:1894)
      20:53:05.898 		at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      20:53:05.898 		at hudson.model.ResourceController.execute(ResourceController.java:97)
      20:53:05.898 		at hudson.model.Executor.run(Executor.java:428)
      20:53:05.898 java.lang.IndexOutOfBoundsException: Bounds exceeds available space : size=1048576, offset=1048577
      20:53:05.898 	at com.sun.jna.Memory.boundsCheck(Memory.java:221)
      20:53:05.898 	at com.sun.jna.Memory.getByte(Memory.java:443)
      20:53:05.898 	at hudson.util.ProcessTree$Darwin$DarwinProcess$1StringArrayMemory.readString(ProcessTree.java:1739)
      20:53:05.898 	at hudson.util.ProcessTree$Darwin$DarwinProcess.parse(ProcessTree.java:1811)
      20:53:05.898 	at hudson.util.ProcessTree$Darwin$DarwinProcess.getEnvironmentVariables(ProcessTree.java:1688)
      20:53:05.898 	at hudson.util.ProcessTree$OSProcess.hasMatchingEnvVars(ProcessTree.java:339)
      20:53:05.898 	at hudson.util.ProcessTree$Unix.killAll(ProcessTree.java:733)
      20:53:05.898 	at hudson.Launcher$RemoteLauncher$KillTask.call(Launcher.java:1164)
      20:53:05.898 	at hudson.Launcher$RemoteLauncher$KillTask.call(Launcher.java:1155)
      20:53:05.898 	at hudson.remoting.UserRequest.perform(UserRequest.java:211)
      20:53:05.898 	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
      20:53:05.898 	at hudson.remoting.Request$2.run(Request.java:375)
      20:53:05.898 	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:73)
      20:53:05.898 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      20:53:05.898 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      20:53:05.898 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      20:53:05.898 	at java.lang.Thread.run(Thread.java:748)
      

          [JENKINS-64347] Bounds exceeds available space exception after successful build-step

          Tim Jacomb added a comment -

          A number of plugins need updating too

          Tim Jacomb added a comment - A number of plugins need updating too

          David D added a comment - - edited

          I added this when launch jenkins, now only seeing this issue for tasks running on nodes.
             -Dhudson.util.ProcessTreeKiller.disable=true

          • could reproduce it with a dump task, say, just echo a string in the build script.  even the node is on the same machine (the server)
          • and this happens for both jenkins 1 (lte) and jenkins2

          -David

          David D added a comment - - edited I added this when launch jenkins, now only seeing this issue for tasks running on nodes.     -Dhudson.util.ProcessTreeKiller.disable=true could reproduce it with a dump task, say, just echo a string in the build script.  even the node is on the same machine (the server) and this happens for both jenkins 1 (lte) and jenkins2 -David

          The

          -Dhudson.util.ProcessTreeKiller.disable=true

           should be an option of the launch agent on the node side

          No errors since one week since option added to the macOS "LaunchAgent" command in a shell script :

          java -Dhudson.util.ProcessTreeKiller.disable=true -jar agent.jar -jnlpUrl https://REDACTED/slave-agent.jnlp -secret REDACTED -noCertificateCheck

          Richard Bergoin added a comment - The -Dhudson.util.ProcessTreeKiller.disable= true  should be an option of the launch agent on the node side No errors since one week since option added to the macOS "LaunchAgent" command in a shell script : java -Dhudson.util.ProcessTreeKiller.disable= true -jar agent.jar -jnlpUrl https: //REDACTED/slave-agent.jnlp -secret REDACTED -noCertificateCheck

          David D added a comment - - edited

          thanks kenji,  it works when launch agent with that option
          (actually need to have it for both, launching server and each node...)

          David D added a comment - - edited thanks kenji ,  it works when launch agent with that option (actually need to have it for both, launching server and each node...)

          Zhao added a comment -

          kenji How to add?

          Zhao added a comment - kenji  How to add?

          simply download it from https://your-jenkins.url/jnlpJars/agent.jar
           

          Richard Bergoin added a comment - simply download it from  https://your-jenkins.url/jnlpJars/agent.jar  

          Sagar added a comment - - edited

          kenji
          I tried downloading the agent.jar file from https://localhost:8080/jnlpJars/agent.jar
          1. My mac tells me that this file can't be trusted and doesn't let me run this file. Is there any other way to run this file? I tried running it by double clicking it.
          2. Where exactly do you add this command on the launch agent?
          java -Dhudson.util.ProcessTreeKiller.disable=true -jar agent.jar -jnlpUrl https://REDACTED/slave-agent.jnlp -secret REDACTED -noCertificateCheck
          Is there a certain file I should add this to? What is this REDACTED part of the command? Running it in the terminal throws unknown exception REDACTED.

          We only have one master agent - no other nodes/slave agent.

          Sagar added a comment - - edited kenji I tried downloading the agent.jar file from https://localhost:8080/jnlpJars/agent.jar 1. My mac tells me that this file can't be trusted and doesn't let me run this file. Is there any other way to run this file? I tried running it by double clicking it. 2. Where exactly do you add this command on the launch agent? java -Dhudson.util.ProcessTreeKiller.disable=true -jar agent.jar -jnlpUrl https://REDACTED/slave-agent.jnlp -secret REDACTED -noCertificateCheck Is there a certain file I should add this to? What is this REDACTED part of the command? Running it in the terminal throws unknown exception REDACTED. We only have one master agent - no other nodes/slave agent.

          You can follow this blog post explaining how to configure a new node in jenkins and how to run a macOS launch agent : https://mgrebenets.github.io/mobile%20ci/2015/02/01/jenkins-remote-node

          I prefer running some shell script to have a cleaner launchd plist file.

          The REDACTED following -secret is redacted to keep this secret token... secret.

          Richard Bergoin added a comment - You can follow this blog post explaining how to configure a new node in jenkins and how to run a macOS launch agent : https://mgrebenets.github.io/mobile%20ci/2015/02/01/jenkins-remote-node I prefer running some shell script to have a cleaner launchd plist file. The REDACTED following -secret is redacted to keep this secret token... secret.

          Sagar added a comment -

          kenji
          Is there a way to solve the memory-bound error on the main server (that has the master) without using/setting up nodes? We would prefer to use this machine for all of our builds and not use any Jenkins slaves.

          Sagar added a comment - kenji Is there a way to solve the memory-bound error on the main server (that has the master) without using/setting up nodes? We would prefer to use this machine for all of our builds and not use any Jenkins slaves.

          Tim Jacomb added a comment -

          This should be fixed in recent weekly versions and not need these work arounds. It will be in LTS next Wednesday

          Tim Jacomb added a comment - This should be fixed in recent weekly versions and not need these work arounds. It will be in LTS next Wednesday

            kenji Richard Bergoin
            malice00 Roland Asmann
            Votes:
            3 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: