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

          yc li created issue -

          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.
          Lakshmi Narasimhan Vaikuntam made changes -
          Assignee New: Lakshmi Narasimhan Vaikuntam [ lvaikunt ]
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 168820 ] New: JNJira + In-Review [ 183243 ]

          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.
          Lakshmi Narasimhan Vaikuntam made changes -
          Resolution New: Not A Defect [ 7 ]
          Status Original: Open [ 1 ] New: Closed [ 6 ]

          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 :
          suresh ramayanam made changes -
          Resolution Original: Not A Defect [ 7 ]
          Status Original: Closed [ 6 ] New: Reopened [ 4 ]

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

              Created:
              Updated:
              Resolved: