• Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Blocker Blocker
    • envinject-plugin
    • None

      I upgraded Jenkins to 1.458 and envinject from 1.36 to 1.44. After the upgrade all my jobs that did not use envinject were getting their WORKSPACE variable set to another jobs that did use envinject WORKSPACE. Downgraded envinject to 1.36 and the problem went away.

      Here's an edited log that shows initially the workspace is correct, even after EnvInject line, but when the shell script runs, it is wrong.

      Also, I don't know why EnvInject is even being run for this job since it is not enabled anywhere...

      [EnvInject] - Preparing an environment for the build.
      Building on master in workspace -correct-workspace-
      Updating http://svn....
      At revision 36652
      no change for http://svn.... since the previous build
      No emails were triggered.
      [bronze-bin] $ /bin/sh -xe /tmp/hudson6983282044770433158.sh
      + echo -some-other-jobs-workspace-

          [JENKINS-13348] EnvInject overriding WORKSPACE variable

          Byron Brummer added a comment -

          Gregory's patch didn't fix it, the problem still exists.

          EnvInject 1.87, Jenkins 1.519

          Downgrading to 1.36 to work around it. If I get some time I'll walk through releases to narrow down where the problem started.

          Is it possible to just hardcode 'WORKSPACE' as an untouchable variable? Or perhaps an "Advanced" check box to allow overriding core Jenkins variables of any kind?

          Byron Brummer added a comment - Gregory's patch didn't fix it, the problem still exists. EnvInject 1.87, Jenkins 1.519 Downgrading to 1.36 to work around it. If I get some time I'll walk through releases to narrow down where the problem started. Is it possible to just hardcode 'WORKSPACE' as an untouchable variable? Or perhaps an "Advanced" check box to allow overriding core Jenkins variables of any kind?

          Wilco Greven added a comment -

          I don't think all plugins have already been rebuild with the new EnvInject version.

          What we did is creating a job which periodically runs the following Groovy system script:

          hudson.EnvVars.masterEnvVars.remove('WORKSPACE')

          It's not nice, but it minimizes the damage caused by this bug.

          Wilco Greven added a comment - I don't think all plugins have already been rebuild with the new EnvInject version. What we did is creating a job which periodically runs the following Groovy system script: hudson.EnvVars.masterEnvVars.remove( 'WORKSPACE' ) It's not nice, but it minimizes the damage caused by this bug.

          aditya ch added a comment -

          The problem is still appearing with "Environment Injector Plugin" 1.89 and Jenkins ver. "1.509.4". Many of the jenkins variables are getting overridden with this plugin. Due to this all the working jobs getting failed.
          the configured workspace in job is /disc/c/new-artifacts/${JOB_NAME}
          the at the start of the job workspace was ok as defined except JOB_NAME variable
          the expected job name is "test1" where it shows some number generated:
          (just printed all the env varibales defined in jenkins)
          [EnvInject] - Loading node environment variables.
          [EnvInject] - Preparing an environment for the build.
          [EnvInject] - Keeping Jenkins system variables.
          [EnvInject] - Keeping Jenkins build variables.
          [EnvInject] - Injecting contributions.
          Building remotely on Compute Farm 1 in workspace /disc/c/new-artifacts/jk4-40146
          [jk4-40146] $ /bin/sh -xe /tmp/843283.1.jenkins.q/hudson7322359360021153706.sh
          + echo build_tagjenkins-test1-5
          build_tagjenkins-test1-5
          + echo 5
          5
          + echo 2014-05-07_13-25-10
          2014-05-07_13-25-10
          + echo jk4-40146
          jk4-40146
          + echo jenkins-test1-5
          jenkins-test1-5
          + echo 0
          0
          + echo Compute Farm 1
          Compute Farm 1
          + echo Compute Farm 1
          Compute Farm 1
          + echo /disc/d/tools/ci-jenkins/classic-ws/workspace-cf1
          /disc/d/tools/tools/ci-jenkins/classic-ws/workspace-cf1
          + echo /disc/d/tools/ci-jenkins/classic-ws
          /disc/d/tools/ci-jenkins/classic-ws
          + echo https://jenkins.mydomain.com/classic/
          https://jenkins.mydomain.com/classic/
          + echo https://jenkins.mydomain.com/classic/job/test1/5/
          https://jenkins.mydomain.com/classic/job/test1/5/
          + echo https://jenkins.mydomain.com/classic/job/test1/
          https://jenkins.mydomain.com/classic/job/test1/
          Finished: SUCCESS

          aditya ch added a comment - The problem is still appearing with "Environment Injector Plugin" 1.89 and Jenkins ver. "1.509.4". Many of the jenkins variables are getting overridden with this plugin. Due to this all the working jobs getting failed. the configured workspace in job is /disc/c/new-artifacts/${JOB_NAME} the at the start of the job workspace was ok as defined except JOB_NAME variable the expected job name is "test1" where it shows some number generated: (just printed all the env varibales defined in jenkins) [EnvInject] - Loading node environment variables. [EnvInject] - Preparing an environment for the build. [EnvInject] - Keeping Jenkins system variables. [EnvInject] - Keeping Jenkins build variables. [EnvInject] - Injecting contributions. Building remotely on Compute Farm 1 in workspace /disc/c/new-artifacts/jk4-40146 [jk4-40146] $ /bin/sh -xe /tmp/843283.1.jenkins.q/hudson7322359360021153706.sh + echo build_tagjenkins-test1-5 build_tagjenkins-test1-5 + echo 5 5 + echo 2014-05-07_13-25-10 2014-05-07_13-25-10 + echo jk4-40146 jk4-40146 + echo jenkins-test1-5 jenkins-test1-5 + echo 0 0 + echo Compute Farm 1 Compute Farm 1 + echo Compute Farm 1 Compute Farm 1 + echo /disc/d/tools/ci-jenkins/classic-ws/workspace-cf1 /disc/d/tools/tools/ci-jenkins/classic-ws/workspace-cf1 + echo /disc/d/tools/ci-jenkins/classic-ws /disc/d/tools/ci-jenkins/classic-ws + echo https://jenkins.mydomain.com/classic/ https://jenkins.mydomain.com/classic/ + echo https://jenkins.mydomain.com/classic/job/test1/5/ https://jenkins.mydomain.com/classic/job/test1/5/ + echo https://jenkins.mydomain.com/classic/job/test1/ https://jenkins.mydomain.com/classic/job/test1/ Finished: SUCCESS

          lacostej added a comment -

          I am hitting the same issue. EnvInject 1.89 and jenkins 1.532.3 and WORKSPACE got set into hudson.EnvVars.masterEnvVars which caused lots of strange build issues. This is really a bummer.

          lacostej added a comment - I am hitting the same issue. EnvInject 1.89 and jenkins 1.532.3 and WORKSPACE got set into hudson.EnvVars.masterEnvVars which caused lots of strange build issues. This is really a bummer.

          Wisen Tanasa added a comment -

          I'm hitting the same issue with EnvInject 1.89 and Jenkins 1.553.

          Wisen Tanasa added a comment - I'm hitting the same issue with EnvInject 1.89 and Jenkins 1.553.

          David Rubio added a comment - - edited

          Similar problem detected with EnvInject 1.91.1 and Jenkins 1.609. Version 1.90 does not have the problem

          For some reason the Path env variable is not updated but java.library.path is. When you try to build, it looks in the old path

          David Rubio added a comment - - edited Similar problem detected with EnvInject 1.91.1 and Jenkins 1.609. Version 1.90 does not have the problem For some reason the Path env variable is not updated but java.library.path is. When you try to build, it looks in the old path

          Do you still see the problem with the 1.92.1 released on Aug 21 2015?

          Martin d'Anjou added a comment - Do you still see the problem with the 1.92.1 released on Aug 21 2015?

          Laurent TOURREAU added a comment - - edited

          I have installed 1.92.1 the problem is present.
          I have downgraded until 1.38 which is the latest version that doesn't have this defect.

          Here a log extract:

          Building remotely on quality in workspace /apps/homes/jenkins/node_quality/workspace/sonar_build
          [sonar_build] $ /bin/sh -xe /tmp/hudson4867033689412661438.sh
          + echo now Launching the build workspace...
          now Launching the build workspace...
          + /apps/tools/misc-tools/build_test.sh
          WORKSPACE=/apps/tools/homes/jenkins/node_quality
          

          As you can see WORKSPACE variable is not set correctly

          Laurent TOURREAU added a comment - - edited I have installed 1.92.1 the problem is present. I have downgraded until 1.38 which is the latest version that doesn't have this defect. Here a log extract: Building remotely on quality in workspace /apps/homes/jenkins/node_quality/workspace/sonar_build [sonar_build] $ /bin/sh -xe /tmp/hudson4867033689412661438.sh + echo now Launching the build workspace... now Launching the build workspace... + /apps/tools/misc-tools/build_test.sh WORKSPACE=/apps/tools/homes/jenkins/node_quality As you can see WORKSPACE variable is not set correctly

          Andrew Barber added a comment -

          I see this issue as well. EnvInject 1.92.1, jenkins 1.642.1. I originally posted this bug
          https://issues.jenkins-ci.org/browse/JENKINS-19754

          The work around to get WORKSPACE set correctly is to
          ○ Select "Prepare jobs environment" on the slave
          ○ Select "Unset System Environment Variables" on the slave

          After recent upgrades on jenkins and plugins I now see intermittent env inject of WORKSPACE to the slave root. I think the "unset system environment variables" is being ignored intermittently. Passing builds have a small set of environment variables set which appear to be only jenkins related. Failing builds have many more environment variables, especially system ones like HOST and LSF environment variables. The passing cases do not have WORKSPACE set.
          This is causing a lot of grief for our work. I hope someone can look into it.

          Andrew Barber added a comment - I see this issue as well. EnvInject 1.92.1, jenkins 1.642.1. I originally posted this bug https://issues.jenkins-ci.org/browse/JENKINS-19754 The work around to get WORKSPACE set correctly is to ○ Select "Prepare jobs environment" on the slave ○ Select "Unset System Environment Variables" on the slave After recent upgrades on jenkins and plugins I now see intermittent env inject of WORKSPACE to the slave root. I think the "unset system environment variables" is being ignored intermittently. Passing builds have a small set of environment variables set which appear to be only jenkins related. Failing builds have many more environment variables, especially system ones like HOST and LSF environment variables. The passing cases do not have WORKSPACE set. This is causing a lot of grief for our work. I hope someone can look into it.

          Andrew Barber added a comment -

          I should also note that the job affected by this does not have "Prepare an environment for the run" selected. EnvInject is still lurking though as this message is always present in stdout:
          [EnvInject] - Loading node environment variables.

          Andrew Barber added a comment - I should also note that the job affected by this does not have "Prepare an environment for the run" selected. EnvInject is still lurking though as this message is always present in stdout: [EnvInject] - Loading node environment variables.

            gbois Gregory Boissinot
            jimsearle Jim Searle
            Votes:
            8 Vote for this issue
            Watchers:
            20 Start watching this issue

              Created:
              Updated: