• Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • repo-plugin
    • None
    • Jenkins 2.332.3
      repo plugin version 1.15.0

      Since upgrading from plugin version 1.14.0 to 1.15.0 we have had two breakages:

      First because we didn't have "Manifest File" set in the Gerrit Repo SCM (which wasn't a problem before) but now we get this failure:

      java.lang.IllegalArgumentException: Null value not allowed as an environment variable: REPO_MANIFEST_FILE
      at hudson.EnvVars.put(EnvVars.java:380)
      at hudson.EnvVars.put(EnvVars.java:75)
      at hudson.plugins.repo.RepoScm.buildEnvironment(RepoScm.java:1193)
      at hudson.scm.SCM.buildEnvVars(SCM.java:589)
      at hudson.model.AbstractBuild.getEnvironment(AbstractBuild.java:962)
      at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:128)
      at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:92)
      at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
      at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:814)
      at hudson.model.Build$BuildExecution.build(Build.java:199)
      at hudson.model.Build$BuildExecution.doRun(Build.java:164)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:522)
      at hudson.model.Run.execute(Run.java:1896)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
      at hudson.model.ResourceController.execute(ResourceController.java:101)
      at hudson.model.Executor.run(Executor.java:442)

      Once we had this fixed / worked around we are getting this failure:

      [myjob] $ /bin/bash /tmp/jenkins/jenkins16772383734652891311.sh
      FATAL: command execution failed
      java.io.IOException: error=7, Argument list too long
      at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
      at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340)
      at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271)
      at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
      Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to agent-02
      at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1784)
      at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:356)
      at hudson.remoting.Channel.call(Channel.java:1000)
      at hudson.Launcher$RemoteLauncher.launch(Launcher.java:1124)
      at hudson.Launcher$ProcStarter.start(Launcher.java:509)
      at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:144)
      at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:92)
      at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
      at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:814)
      at hudson.model.Build$BuildExecution.build(Build.java:199)
      at hudson.model.Build$BuildExecution.doRun(Build.java:164)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:522)
      at hudson.model.Run.execute(Run.java:1896)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
      at hudson.model.ResourceController.execute(ResourceController.java:101)
      at hudson.model.Executor.run(Executor.java:442)
      Caused: java.io.IOException: Cannot run program "/bin/bash" (in directory "/home/jenkins/workspace/myjob"): error=7, Argument list too long
      at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
      at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
      at hudson.Proc$LocalProc.<init>(Proc.java:254)
      at hudson.Proc$LocalProc.<init>(Proc.java:223)
      at hudson.Launcher$LocalLauncher.launch(Launcher.java:997)
      at hudson.Launcher$ProcStarter.start(Launcher.java:509)
      at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1398)
      at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1340)
      at hudson.remoting.UserRequest.perform(UserRequest.java:211)
      at hudson.remoting.UserRequest.perform(UserRequest.java:54)
      at hudson.remoting.Request$2.run(Request.java:376)
      at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      at java.base/java.lang.Thread.run(Thread.java:829)
      Build step 'Execute shell' marked build as failure

      We have a ~250 line shell script in "Execute shell" and 7 build parameters with values either being empty or max. 25 characters long. Other than that I don't think the job has any noteworthy configuration.

      After downgrading the repo plugin back to 1.14.0 it works fine again.

          [JENKINS-68722] repo plugin 1.15.0 multiple breakages

          Makson Lee added a comment - - edited

          We have same problem too, seems the pull request [1] cause it.

          if (state != SCMRevisionState.NONE) {
             env.put("REPO_MANIFEST_URL", ((RevisionState) state).getUrl());
             env.put("REPO_MANIFEST_BRANCH", ((RevisionState) state).getBranch());
             env.put("REPO_MANIFEST_FILE", ((RevisionState) state).getFile());
             env.put("REPO_MANIFEST_XML", ((RevisionState) state).getManifest());
          } 

          At some situation, REPO_MANIFEST_XML is a big file and get to expand and then add to env will cause the exception.

          [1] https://github.com/jenkinsci/repo-plugin/pull/74

          Makson Lee added a comment - - edited We have same problem too, seems the pull request [1] cause it. if (state != SCMRevisionState.NONE) { env.put( "REPO_MANIFEST_URL" , ((RevisionState) state).getUrl()); env.put( "REPO_MANIFEST_BRANCH" , ((RevisionState) state).getBranch()); env.put( "REPO_MANIFEST_FILE" , ((RevisionState) state).getFile()); env.put( "REPO_MANIFEST_XML" , ((RevisionState) state).getManifest()); } At some situation, REPO_MANIFEST_XML is a big file and get to expand and then add to env will cause the exception. [1] https://github.com/jenkinsci/repo-plugin/pull/74

          Makson Lee added a comment -

          typz, would you please help to review following PR?
          https://github.com/jenkinsci/repo-plugin/pull/84

          Makson Lee added a comment - typz , would you please help to review following PR? https://github.com/jenkinsci/repo-plugin/pull/84

          Luca Weiss added a comment -

          cdlee Thanks for fixing this!

           

          For the first issue I reported above I think instead of "env.put("REPO_MANIFEST_FILE", ((RevisionState) state).getFile());" it needs something like the following:

           

          String file = ((RevisionState) state).getFile()

          if (file != null) {

              env.put("REPO_MANIFEST_FILE", file);

          }

           

          Luca Weiss added a comment - cdlee Thanks for fixing this!   For the first issue I reported above I think instead of "env.put("REPO_MANIFEST_FILE", ((RevisionState) state).getFile());" it needs something like the following:   String file = ((RevisionState) state).getFile() if (file != null) {     env.put("REPO_MANIFEST_FILE", file); }  

          Makson Lee added a comment -

          My PR just fixed the second issue you reported.

          Makson Lee added a comment - My PR just fixed the second issue you reported.

            typz Francois Ferrand
            lucaweiss Luca Weiss
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: