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

Subversion : environment variables work only partially (got broken in 2.3 or prior, after 1.44)

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • subversion-plugin
    • None
    • RHEL6

      With upgrade of Subversion plugin from 1.44 to 2.3, environment variable behavior changed for the worse. I did not find any similar report in search although there are tons of reports concerning environment variables in various scenarios.

      Details:

      I have tons of jobs that all use a handful of branches. I need to "bump up" these jobs to use updated branch names on a regular basis, so the branch names live in global properties as environment variables, for example as below. (This is extremely convenient for managing a large number of jobs for me and hence important).

      name: BASE_INTEGRATION_BRANCH
      value: http://repo.company.net/svn/branches/release/Base.14.04

      Then, each job that needs to use this has its Subversion config as:

      Repository: ${BASE_INTEGRATION_BRANCH}

      In Subversion plugin 1.44, both polling and checkout worked flawlessly. After upgrade to 2.3, checkouts still work but polling always fails as below. (I have tried both ticking and unticking the "Validate repository URLs up to the first variable name" checkbox in global Subversion plugin config to no effect).

      Started on 2014-maj-08 14:37:16
      ERROR: Failed to check repository revision for ${BASE_INTEGRATION_BRANCH}
      org.tmatesoft.svn.core.SVNException: svn: E125002: Malformed URL '${BASE_INTEGRATION_BRANCH}'
      at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
      at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
      at org.tmatesoft.svn.core.SVNURL.<init>(SVNURL.java:233)
      at org.tmatesoft.svn.core.SVNURL.parseURIEncoded(SVNURL.java:127)
      at hudson.scm.SubversionSCM$ModuleLocation.getSVNURL(SubversionSCM.java:2700)
      at hudson.scm.SubversionSCM.compareRemoteRevisionWith(SubversionSCM.java:1442)
      at hudson.scm.SCM._compareRemoteRevisionWith(SCM.java:357)
      at hudson.scm.SCM.poll(SCM.java:374)
      at hudson.model.AbstractProject._poll(AbstractProject.java:1427)
      at hudson.model.AbstractProject.poll(AbstractProject.java:1330)
      at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:466)
      at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:495)
      at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:744)
      Caused by: svn: E125002: Malformed URL '${BASE_INTEGRATION_BRANCH}'
      at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:171)
      at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:126)
      at org.tmatesoft.svn.core.SVNURL.<init>(SVNURL.java:232)
      ... 15 more
      Done. Took 11 ms
      Changes found

          [JENKINS-22922] Subversion : environment variables work only partially (got broken in 2.3 or prior, after 1.44)

          Pawel Defee created issue -
          Pawel Defee made changes -
          Description Original: With upgrade of Subversion plugin from 1.44 to 2.3, environment variable behavior changed for the worse. I did not find any similar report in search although there are tons of reports concerning environment variables in various scenarios.

          Details:

          I have tons of jobs that all use a handful of branches. I need to "bump up" these jobs to use updated branch names on a regular basis, so the branch names live in global properties as environment variables, for example as below. (This is extremely convenient for managing a large number of jobs for me and hence important).

          name: BASE_INTEGRATION_BRANCH
          value: http://repo.company.net/svn/branches/release/Base.14.04

          Then, each job that needs to use this has its Subversion config as:

          Repository: ${BASE_INTEGRATION_BRANCH}

          In Subversion plugin 1.44, both polling and checkout worked flawlessly. After upgrade to 2.3, checkouts still work but polling always fails as follows:

          Started on 2014-maj-08 14:37:16
          ERROR: Failed to check repository revision for ${BASE_INTEGRATION_BRANCH}
          org.tmatesoft.svn.core.SVNException: svn: E125002: Malformed URL '${BASE_INTEGRATION_BRANCH}'
          at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
          at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
          at org.tmatesoft.svn.core.SVNURL.<init>(SVNURL.java:233)
          at org.tmatesoft.svn.core.SVNURL.parseURIEncoded(SVNURL.java:127)
          at hudson.scm.SubversionSCM$ModuleLocation.getSVNURL(SubversionSCM.java:2700)
          at hudson.scm.SubversionSCM.compareRemoteRevisionWith(SubversionSCM.java:1442)
          at hudson.scm.SCM._compareRemoteRevisionWith(SCM.java:357)
          at hudson.scm.SCM.poll(SCM.java:374)
          at hudson.model.AbstractProject._poll(AbstractProject.java:1427)
          at hudson.model.AbstractProject.poll(AbstractProject.java:1330)
          at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:466)
          at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:495)
          at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
          at java.util.concurrent.FutureTask.run(FutureTask.java:262)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
          at java.lang.Thread.run(Thread.java:744)
          Caused by: svn: E125002: Malformed URL '${BASE_INTEGRATION_BRANCH}'
          at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:171)
          at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:126)
          at org.tmatesoft.svn.core.SVNURL.<init>(SVNURL.java:232)
          ... 15 more
          Done. Took 11 ms
          Changes found
          New: With upgrade of Subversion plugin from 1.44 to 2.3, environment variable behavior changed for the worse. I did not find any similar report in search although there are tons of reports concerning environment variables in various scenarios.

          Details:

          I have tons of jobs that all use a handful of branches. I need to "bump up" these jobs to use updated branch names on a regular basis, so the branch names live in global properties as environment variables, for example as below. (This is extremely convenient for managing a large number of jobs for me and hence important).

          name: BASE_INTEGRATION_BRANCH
          value: http://repo.company.net/svn/branches/release/Base.14.04

          Then, each job that needs to use this has its Subversion config as:

          Repository: ${BASE_INTEGRATION_BRANCH}

          In Subversion plugin 1.44, both polling and checkout worked flawlessly. After upgrade to 2.3, checkouts still work but polling always fails as below. (I have tried both ticking and unticking the "Validate repository URLs up to the first variable name" checkbox in global Subversion plugin config to no effect).

          Started on 2014-maj-08 14:37:16
          ERROR: Failed to check repository revision for ${BASE_INTEGRATION_BRANCH}
          org.tmatesoft.svn.core.SVNException: svn: E125002: Malformed URL '${BASE_INTEGRATION_BRANCH}'
          at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
          at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
          at org.tmatesoft.svn.core.SVNURL.<init>(SVNURL.java:233)
          at org.tmatesoft.svn.core.SVNURL.parseURIEncoded(SVNURL.java:127)
          at hudson.scm.SubversionSCM$ModuleLocation.getSVNURL(SubversionSCM.java:2700)
          at hudson.scm.SubversionSCM.compareRemoteRevisionWith(SubversionSCM.java:1442)
          at hudson.scm.SCM._compareRemoteRevisionWith(SCM.java:357)
          at hudson.scm.SCM.poll(SCM.java:374)
          at hudson.model.AbstractProject._poll(AbstractProject.java:1427)
          at hudson.model.AbstractProject.poll(AbstractProject.java:1330)
          at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:466)
          at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:495)
          at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
          at java.util.concurrent.FutureTask.run(FutureTask.java:262)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
          at java.lang.Thread.run(Thread.java:744)
          Caused by: svn: E125002: Malformed URL '${BASE_INTEGRATION_BRANCH}'
          at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:171)
          at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:126)
          at org.tmatesoft.svn.core.SVNURL.<init>(SVNURL.java:232)
          ... 15 more
          Done. Took 11 ms
          Changes found
          Pawel Defee made changes -
          Summary Original: Subversion : environment variables work only partially New: Subversion : environment variables work only partially (got broken in 2.3 or prior, after 1.44)
          Wilco Greven made changes -
          Link New: This issue is related to JENKINS-23007 [ JENKINS-23007 ]
          Heiner Tittelbach made changes -
          Link New: This issue is related to JENKINS-22568 [ JENKINS-22568 ]
          Heiner Tittelbach made changes -
          Link New: This issue is related to JENKINS-10628 [ JENKINS-10628 ]

          Tim Bradt added a comment -

          This is still a problem in Subversion plug-in 2.5...

          Started on Apr 10, 2015 3:42:02 PM
          ERROR: Failed to check repository revision for ${SVN_URL_ROOT}30-Dev/DatabaseBuild
          org.tmatesoft.svn.core.SVNException: svn: E125002: Malformed URL '${SVN_URL_ROOT}30-Dev/DatabaseBuild'

          ${SVN_URL_ROOT} is defined in global properties, and I do not have/need any credentials on this repo to do an update.

          Tim Bradt added a comment - This is still a problem in Subversion plug-in 2.5... Started on Apr 10, 2015 3:42:02 PM ERROR: Failed to check repository revision for ${SVN_URL_ROOT}30-Dev/DatabaseBuild org.tmatesoft.svn.core.SVNException: svn: E125002: Malformed URL '${SVN_URL_ROOT}30-Dev/DatabaseBuild' ${SVN_URL_ROOT} is defined in global properties, and I do not have/need any credentials on this repo to do an update.

          Lionel Trebuchon added a comment - - edited

          Hello!

          I also use the svn plugin 2.5.
          For me, the passing of environment variables defined on folder level (or on jenkins level, whatever you use) works well when I am building on... linux (debian)!
          The ${PATH_TO_MY_SOFTWARE} expands like a charme into the true link.

          On Windows however, ${PATH_TO_MY_SOFTWARE} and %PATH_TO_MY_COMPILERS% that same mistake "ERROR: Failed to check out %SVN_PERIPHERALS-P2_LATEST%/fdoot_mpd
          org.tmatesoft.svn.core.SVNException: svn: E125002: Malformed URL "

          I don't know if this piece of information helps anyone. I am still waiting for the Windows solution, the Linux solution seems to work (I really didn't have to tweak anything)
          Friendly Greetings, and have a wonderful day!
          Lionel

          Lionel Trebuchon added a comment - - edited Hello! I also use the svn plugin 2.5. For me, the passing of environment variables defined on folder level (or on jenkins level, whatever you use) works well when I am building on... linux (debian) ! The ${PATH_TO_MY_SOFTWARE} expands like a charme into the true link. On Windows however, ${PATH_TO_MY_SOFTWARE} and %PATH_TO_MY_COMPILERS% that same mistake "ERROR: Failed to check out %SVN_PERIPHERALS-P2_LATEST%/fdoot_mpd org.tmatesoft.svn.core.SVNException: svn: E125002: Malformed URL " I don't know if this piece of information helps anyone. I am still waiting for the Windows solution, the Linux solution seems to work (I really didn't have to tweak anything) Friendly Greetings, and have a wonderful day! Lionel

          Tim Bradt added a comment -

          Using %Var% in the URL is not valid syntax. You must use ${SVN_PERIPHERALS-P2_LATEST}. The only place you can use standard Windows syntax (%) is inside a Windows batch command build step. Everywhere else it requires Java syntax.

          With that, you should be able to do a check out. It's just SCM Polling that fails.

          Tim Bradt added a comment - Using %Var% in the URL is not valid syntax. You must use ${SVN_PERIPHERALS-P2_LATEST}. The only place you can use standard Windows syntax (%) is inside a Windows batch command build step. Everywhere else it requires Java syntax. With that, you should be able to do a check out. It's just SCM Polling that fails.

          Lionel Trebuchon added a comment - - edited

          Hello Tim!

          Thanks a lot for the response.
          I think I made the wrong assumption that it works only on linux because as a matter of luck, my linux projects that had already been checked out once continued to work.
          But now, I have the problem on both Linux and Windows build server and it seems to be a plugin issue in the version 2.5 .
          For instance, they seem to have a similar problem here: https://issues.jenkins-ci.org/browse/JENKINS-22542

          Friendly greetings,
          Lionel Trébuchon

          Lionel Trebuchon added a comment - - edited Hello Tim! Thanks a lot for the response. I think I made the wrong assumption that it works only on linux because as a matter of luck, my linux projects that had already been checked out once continued to work. But now, I have the problem on both Linux and Windows build server and it seems to be a plugin issue in the version 2.5 . For instance, they seem to have a similar problem here: https://issues.jenkins-ci.org/browse/JENKINS-22542 Friendly greetings, Lionel Trébuchon

            recena Manuel Recena Soto
            paweldefee Pawel Defee
            Votes:
            4 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: