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

Jenkins use different RTC Build Toolkit path as the one set in system configure

      The jenkins master is on a linux server, the slave use for build is on windows. the build toolkit has already configured and path set to e:\build_tools\rtc\4.0.7\jazz\buildsystem\buildtoolkit.

      When trigger the build, the code from RTC is check out and maven build command is also run successfully, but it get an error when build end. Shows can't find the Built toolkit directory. But the path it try to find is like linux absolute path * /*e:\build_tools\rtc\4.0.7\jazz\buildsystem\buildtoolkit

      The Team Concert Plugin version i am using is 1.1.9.4, jenkins version Jenkins 1.609.1.1. The build log is show as below:

      RTC : checkout...
      RTC Checkout : Source control setup
      RTC Checkout : Accepting changes into workspace "xFramework-dedicated-RTC-build Workspace" ...
      RTC Checkout : Deleting fetch destination "E:\jenkins\workspace\Testing_CoE\xFramework_Automated_Build\build_HDIpcNO8EeW-vYml2jk5ig" before fetching ...
      RTC Checkout : Fetching files to fetch destination "E:\jenkins\workspace\Testing_CoE\xFramework_Automated_Build\build_HDIpcNO8EeW-vYml2jk5ig" ...
      RTC Checkout : Fetching Completed
      [xFramework_Automated_Build] $ cmd.exe /C '"E:\build_tools\maven\apache-maven-3.0.3\bin\mvn.bat -f build/_HDIpcNO8EeW-vYml2jk5ig/xframework/pom.xml -DbuildResultUUID= clean deploy -U -DskipTests && exit %%ERRORLEVEL%%"'
      [INFO] Scanning for projects...
      [INFO]
      ...
      ...
      ...
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD SUCCESS
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 3:01.714s
      [INFO] Finished at: Wed Feb 17 13:23:11 GMT 2016
      [INFO] Final Memory: 24M/372M
      [INFO] ------------------------------------------------------------------------
      FATAL: Error marking RTC build as completed: Built toolkit directory not found at: /e:\build_tools\rtc\4.0.7\jazz\buildsystem\buildtoolkit
      The RTC build may still be running. You may need to manually cancel it in RTC.
      java.lang.IllegalArgumentException: Built toolkit directory not found at: /e:\build_tools\rtc\4.0.7\jazz\buildsystem\buildtoolkit
      at com.ibm.team.build.internal.hjplugin.RTCFacadeFactory.newFacade(RTCFacadeFactory.java:172)
      at com.ibm.team.build.internal.hjplugin.RTCFacadeFactory.getFacade(RTCFacadeFactory.java:71)
      at com.ibm.team.build.internal.hjplugin.util.RTCFacadeFacade.terminateBuild(RTCFacadeFacade.java:565)
      at com.ibm.team.build.internal.hjplugin.RTCRunListener.onCompleted(RTCRunListener.java:83)
      at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:199)
      at hudson.model.Run.execute(Run.java:1786)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      at hudson.model.ResourceController.execute(ResourceController.java:98)
      at hudson.model.Executor.run(Executor.java:374)
      Finished: SUCCESS

          [JENKINS-32996] Jenkins use different RTC Build Toolkit path as the one set in system configure

          Is the build toolkit configured in the slave node? If not, I believe it should be available in the same path as in the master.

          Sridevi Sangaiah added a comment - Is the build toolkit configured in the slave node? If not, I believe it should be available in the same path as in the master.

          Is there a buildtoolkit configured on the master? In this specific case, even if the build happens on the slave, Team Concert plugin tries to close the RTC build result from the master using the master's buildtoolkit.

          Lakshmi Narasimhan Vaikuntam added a comment - Is there a buildtoolkit configured on the master? In this specific case, even if the build happens on the slave, Team Concert plugin tries to close the RTC build result from the master using the master's buildtoolkit.

          I tried to reproduce the scenario.

          Under Global Tool Configuration (Jenkins 2.x), create a RTC Buildtoolkit installation named Test with a path that doesn't exist on the master
          Create a slave node and override tool location of Test with a path that exists on the slave.
          Create a Jenkins job with Build Definition configuration.
          Restrict the Jenkins job to run only on the slave.
          Start a Jenkins build.

          Observed:
          The checkout proceeds. At the end of the build, I got the error that the build toolkit path does not exist.

          Once I put valid build toolkit path on master for Test in Global Tool configuration, the build goes through without any errors.

          Team Concert plugin registers a callback for "end of build" event. The RTC Build result is closed in this callback. This callback does not have an option to run code in the slave. The RTC build result has to be closed from the master and therefore, a valid build toolkit is required.

          The solution is to have a valid buildtoolkit path on the master. As a workaround, you can use "Avoid using build toolkit on master" option in Rational Team Concert global configuration or job specific configuration to solve this issue. You will still need a valid buildtoolkit to load content from RTC on the master.

          Lakshmi Narasimhan Vaikuntam added a comment - I tried to reproduce the scenario. Under Global Tool Configuration (Jenkins 2.x), create a RTC Buildtoolkit installation named Test with a path that doesn't exist on the master Create a slave node and override tool location of Test with a path that exists on the slave. Create a Jenkins job with Build Definition configuration. Restrict the Jenkins job to run only on the slave. Start a Jenkins build. Observed: The checkout proceeds. At the end of the build, I got the error that the build toolkit path does not exist. Once I put valid build toolkit path on master for Test in Global Tool configuration, the build goes through without any errors. Team Concert plugin registers a callback for "end of build" event. The RTC Build result is closed in this callback. This callback does not have an option to run code in the slave. The RTC build result has to be closed from the master and therefore, a valid build toolkit is required. The solution is to have a valid buildtoolkit path on the master. As a workaround, you can use "Avoid using build toolkit on master" option in Rational Team Concert global configuration or job specific configuration to solve this issue. You will still need a valid buildtoolkit to load content from RTC on the master.

          Closing based on findings in previous comment.

          Lakshmi Narasimhan Vaikuntam added a comment - Closing based on findings in previous comment.

          Can you please try to run the same build with polling ?

          The normal build work ok , its the issue with SCM polling!

          We we run the same job via polling , below is the error :

          suresh ramayanam added a comment - Can you please try to run the same build with polling ? The normal build work ok , its the issue with SCM polling! We we run the same job via polling , below is the error :

          sorry missed the error :

          Built toolkit directory not found at: /e:\build_tools\rtc\4.0.7\jazz\buildsystem\buildtoolkit

          suresh ramayanam added a comment - sorry missed the error : Built toolkit directory not found at: /e:\build_tools\rtc\4.0.7\jazz\buildsystem\buildtoolkit

          I tried the polling scenario without and with a valid build toolkit on master (using Team Concert Plugin 1.2.0.1)
          1) Without a valid build toolkit on master, polling fails with an error
          FATAL: RTC : checking for changes failure: Built toolkit directory not found at: <build toolkit path provided in the Global Tool Configuration>
          The reason for this failure is that polling always happens on the master and a valid build toolkit is required unless "Avoid using Toolkit on master" option is selected (for Build Definition configuration)
          2) When a valid build toolkit is provided on master, polling succeeds and triggers a build. The build completes successfully.

          I repeated the polling scenario without a valid build toolkit on master but selected "Avoid using toolkit on Master" in the Global configuration or Job configuration. In this case, polling goes through and a build is triggered. The build completes successfully.

          I will try this scenario with 1.1.9.4.

          Lakshmi Narasimhan Vaikuntam added a comment - I tried the polling scenario without and with a valid build toolkit on master (using Team Concert Plugin 1.2.0.1) 1) Without a valid build toolkit on master, polling fails with an error FATAL: RTC : checking for changes failure: Built toolkit directory not found at: <build toolkit path provided in the Global Tool Configuration> The reason for this failure is that polling always happens on the master and a valid build toolkit is required unless "Avoid using Toolkit on master" option is selected (for Build Definition configuration) 2) When a valid build toolkit is provided on master, polling succeeds and triggers a build. The build completes successfully. I repeated the polling scenario without a valid build toolkit on master but selected "Avoid using toolkit on Master" in the Global configuration or Job configuration. In this case, polling goes through and a build is triggered. The build completes successfully. I will try this scenario with 1.1.9.4.

          Do you see the error in the polling scenario with "Avoid using toolkit on master" enabled in the Job configuration?

          Lakshmi Narasimhan Vaikuntam added a comment - Do you see the error in the polling scenario with "Avoid using toolkit on master" enabled in the Job configuration?

          With Jenkins 2.x and Team Concert plugin 1.1.9.4, manual build and polling works fine for Build Definition configuration when either

          1) A valid build toolkit path is configured in Global Tool Configuration
          or
          2) "Avoid using build toolkit on master" is selected in the global or job configuration.

          Lakshmi Narasimhan Vaikuntam added a comment - - edited With Jenkins 2.x and Team Concert plugin 1.1.9.4, manual build and polling works fine for Build Definition configuration when either 1) A valid build toolkit path is configured in Global Tool Configuration or 2) "Avoid using build toolkit on master" is selected in the global or job configuration.

          We are on jenkins 1.625 and using Team Concert plugin 1.1.9.4.

          I get this error "Built toolkit directory not found at: /E:\build_tools\rtc\4.0.7\jazz\buildsystem\buildtoolkit " even after selecting the below:

          1) A valid build toolkit path is configured in Global Tool Configuration
          or
          2) "Avoid using build toolkit on master" is selected in the global or job configuration.

          suresh ramayanam added a comment - We are on jenkins 1.625 and using Team Concert plugin 1.1.9.4. I get this error "Built toolkit directory not found at: /E:\build_tools\rtc\4.0.7\jazz\buildsystem\buildtoolkit " even after selecting the below: 1) A valid build toolkit path is configured in Global Tool Configuration or 2) "Avoid using build toolkit on master" is selected in the global or job configuration.

          Is your setup and error similar to what is mentioned in the description? The description doesn't mention anything about polling. Can you describe your scenario?

          Lakshmi Narasimhan Vaikuntam added a comment - - edited Is your setup and error similar to what is mentioned in the description? The description doesn't mention anything about polling. Can you describe your scenario?

          @suresh, Can you confirm whether you see this issue in the latest version of Team Concert Plugin?

          Lakshmi Narasimhan Vaikuntam added a comment - @suresh, Can you confirm whether you see this issue in the latest version of Team Concert Plugin?

          Closing the issue. Based on previous two comments, the issue reported when reopening the issue doesn't appear to the same as what was originally reported in this defect. Please open a new defect if the problem persists.

          Lakshmi Narasimhan Vaikuntam added a comment - Closing the issue. Based on previous two comments, the issue reported when reopening the issue doesn't appear to the same as what was originally reported in this defect. Please open a new defect if the problem persists.

          Wolf Molnar added a comment -

          I have this problem too.

          The Master is running on Linux and the slave is running on Windows.

          I use the RTC-BuildSystem-Toolkit-Win64-6.0.6 and the toolkit is not installed on the Master, just on the slave

          When I use Windows Master alone and install toolkit then it work fine,

          Wolf Molnar added a comment - I have this problem too. The Master is running on Linux and the slave is running on Windows. I use the RTC-BuildSystem-Toolkit-Win64-6.0.6 and the toolkit is not installed on the Master, just on the slave When I use Windows Master alone and install toolkit then it work fine,

          Wolf Molnar added a comment -

          Jenkins ver. 2.150.3
          Team Concert Plugin 1.2.0.5

          Wolf Molnar added a comment - Jenkins ver. 2.150.3 Team Concert Plugin 1.2.0.5

          Wolf Molnar added a comment -

          The slave has a custom path of toolkit and Avoid using build toolkit on Master (experimental) is checked but It still use master path.

          Wolf Molnar added a comment - The slave has a custom path of toolkit and Avoid using build toolkit on Master (experimental) is checked but It still use master path.

          theonlinewolf What is the error displayed in the console log? The buildtoolkit is still required for few operations performed in the master. The error logged could clarify this.

          Sridevi Sangaiah added a comment - theonlinewolf What is the error displayed in the console log? The buildtoolkit is still required for few operations performed in the master. The error logged could clarify this.

          Wolf Molnar added a comment -

          RTC : checkout...
          FATAL: RTC : checkout failure: Built toolkit directory not found at: /tmp/test
          java.lang.IllegalArgumentException: Built toolkit directory not found at: /tmp/test
          at com.ibm.team.build.internal.hjplugin.RTCFacadeFactory.newFacade(RTCFacadeFactory.java:185)
          at com.ibm.team.build.internal.hjplugin.RTCFacadeFactory.getFacade(RTCFacadeFactory.java:71)
          at com.ibm.team.build.internal.hjplugin.util.Helper.getValueForBuildStream(Helper.java:464)
          at com.ibm.team.build.internal.hjplugin.util.Helper.getSnapshotUUIDFromPreviousBuild(Helper.java:305)
          at com.ibm.team.build.internal.hjplugin.RTCScm.checkout(RTCScm.java:2047)
          at hudson.scm.SCM.checkout(SCM.java:504)
          at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
          at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
          at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
          at hudson.model.Run.execute(Run.java:1810)
          at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
          at hudson.model.ResourceController.execute(ResourceController.java:97)
          at hudson.model.Executor.run(Executor.java:429)
          ERROR: RTC : checkout failure: Built toolkit directory not found at: /tmp/test

          On Master (Linux) the build tool not exists and "Avoid using build toolkit on Master (experimental)" checked.
          On slave that tool is configured.

          Wolf Molnar added a comment - RTC : checkout... FATAL: RTC : checkout failure: Built toolkit directory not found at: /tmp/test java.lang.IllegalArgumentException: Built toolkit directory not found at: /tmp/test at com.ibm.team.build.internal.hjplugin.RTCFacadeFactory.newFacade(RTCFacadeFactory.java:185) at com.ibm.team.build.internal.hjplugin.RTCFacadeFactory.getFacade(RTCFacadeFactory.java:71) at com.ibm.team.build.internal.hjplugin.util.Helper.getValueForBuildStream(Helper.java:464) at com.ibm.team.build.internal.hjplugin.util.Helper.getSnapshotUUIDFromPreviousBuild(Helper.java:305) at com.ibm.team.build.internal.hjplugin.RTCScm.checkout(RTCScm.java:2047) at hudson.scm.SCM.checkout(SCM.java:504) at hudson.model.AbstractProject.checkout(AbstractProject.java:1208) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499) at hudson.model.Run.execute(Run.java:1810) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429) ERROR: RTC : checkout failure: Built toolkit directory not found at: /tmp/test On Master (Linux) the build tool not exists and "Avoid using build toolkit on Master (experimental)" checked. On slave that tool is configured.

          From the logs it is not evident if the build ran on the master or slave? Can you please confirm that the build ran on the slave and not the master.

          Sridevi Sangaiah added a comment - From the logs it is not evident if the build ran on the master or slave? Can you please confirm that the build ran on the slave and not the master.

          Wolf Molnar added a comment - - edited

          It ran on the slave (Windows) If I install tool on the Master, then this project download files from RTC to the slave.

          Wolf Molnar added a comment - - edited It ran on the slave (Windows) If I install tool on the Master, then this project download files from RTC to the slave.

          The console output should have information on whether the build was executed on the master or slave.

          Sridevi Sangaiah added a comment - The console output should have information on whether the build was executed on the master or slave.

          Wolf Molnar added a comment -

          [EnvInject] - Loading node environment variables.
          Building remotely on WinSer 01 (WindowsServer WS01) in workspace D:\jenkins\workspace\workspace\BuildTools from RTC
          RTC : checkout...
          FATAL: RTC : checkout failure: Built toolkit directory not found at: /tmp/test
          java.lang.IllegalArgumentException: Built toolkit directory not found at: /tmp/test
          at com.ibm.team.build.internal.hjplugin.RTCFacadeFactory.newFacade(RTCFacadeFactory.java:185)
          at com.ibm.team.build.internal.hjplugin.RTCFacadeFactory.getFacade(RTCFacadeFactory.java:71)
          at com.ibm.team.build.internal.hjplugin.util.Helper.getValueForBuildStream(Helper.java:464)
          at com.ibm.team.build.internal.hjplugin.util.Helper.getSnapshotUUIDFromPreviousBuild(Helper.java:305)
          at com.ibm.team.build.internal.hjplugin.RTCScm.checkout(RTCScm.java:2047)
          at hudson.scm.SCM.checkout(SCM.java:504)
          at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
          at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
          at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
          at hudson.model.Run.execute(Run.java:1810)
          at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
          at hudson.model.ResourceController.execute(ResourceController.java:97)
          at hudson.model.Executor.run(Executor.java:429)
          ERROR: RTC : checkout failure: Built toolkit directory not found at: /tmp/test
          Finished: FAILURE

          Wolf Molnar added a comment - [EnvInject] - Loading node environment variables. Building remotely on WinSer 01 (WindowsServer WS01) in workspace D:\jenkins\workspace\workspace\BuildTools from RTC RTC : checkout... FATAL: RTC : checkout failure: Built toolkit directory not found at: /tmp/test java.lang.IllegalArgumentException: Built toolkit directory not found at: /tmp/test at com.ibm.team.build.internal.hjplugin.RTCFacadeFactory.newFacade(RTCFacadeFactory.java:185) at com.ibm.team.build.internal.hjplugin.RTCFacadeFactory.getFacade(RTCFacadeFactory.java:71) at com.ibm.team.build.internal.hjplugin.util.Helper.getValueForBuildStream(Helper.java:464) at com.ibm.team.build.internal.hjplugin.util.Helper.getSnapshotUUIDFromPreviousBuild(Helper.java:305) at com.ibm.team.build.internal.hjplugin.RTCScm.checkout(RTCScm.java:2047) at hudson.scm.SCM.checkout(SCM.java:504) at hudson.model.AbstractProject.checkout(AbstractProject.java:1208) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499) at hudson.model.Run.execute(Run.java:1810) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429) ERROR: RTC : checkout failure: Built toolkit directory not found at: /tmp/test Finished: FAILURE

          Looks like the Jenkins project is configured to load source from a Stream. A valid build toolkit is required to retrieve certain details in a step that is performed in the master before checkout runs in the slave.

          We will update the teamconcert plugin wiki page with this limitation, shortly.

          Sridevi Sangaiah added a comment - Looks like the Jenkins project is configured to load source from a Stream. A valid build toolkit is required to retrieve certain details in a step that is performed in the master before checkout runs in the slave. We will update the teamconcert plugin wiki page with this limitation, shortly.

          Given that valid build toolkit is required on the master, not only for builds but also for polling, I am resolving this bug as not a defect.

           

          Please note that polling happens only on master. Therefore a valid build toolkit is needed for all configurations for polling to work except snapshot which doesn't support polling.

          Lakshmi Narasimhan Vaikuntam added a comment - Given that valid build toolkit is required on the master, not only for builds but also for polling, I am resolving this bug as not a defect.   Please note that polling happens only on master. Therefore a valid build toolkit is needed for all configurations for polling to work except snapshot which doesn't support polling.

            Unassigned Unassigned
            lyc1986830 yc li
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: