• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • subversion-plugin
    • None
    • Platform: All, OS: All

      With Hudson 1.132, when a project gets deleted in SVN, Hudson errors out.

          [JENKINS-763] Gracefully handle project deleted in SVN

          jbq added a comment -

          Note that the setting "Local module directory" has value "." in the project
          configuration as I indicate the full URL in "Repository URL"

          jbq added a comment - Note that the setting "Local module directory" has value "." in the project configuration as I indicate the full URL in "Repository URL"

          jbq added a comment -

          Additionally, subsequent builds fail with the following error:

          Checking out a fresh workspace because Hudson failed to detect the current
          workspace /path/to/mycompany/repository/myproject
          ERROR: svn: Cannot read entry for '/path/to/mycompany/repository/myproject'
          ...
          Checking out https://svn.mycompany.com/repos/mycompany/myproject
          ERROR: Failed to check out https://svn.mycompany.com/repos/mycompany/myproject
          org.tmatesoft.svn.core.SVNException: svn: URL
          'https://svn.mycompany.com/repos/mycompany/myproject' doesn't exist

          jbq added a comment - Additionally, subsequent builds fail with the following error: Checking out a fresh workspace because Hudson failed to detect the current workspace /path/to/mycompany/repository/myproject ERROR: svn: Cannot read entry for '/path/to/mycompany/repository/myproject' ... Checking out https://svn.mycompany.com/repos/mycompany/myproject ERROR: Failed to check out https://svn.mycompany.com/repos/mycompany/myproject org.tmatesoft.svn.core.SVNException: svn: URL 'https://svn.mycompany.com/repos/mycompany/myproject' doesn't exist

          jbq added a comment -

          Here is the new error message:

          ERROR: Failed to update file:///tmp/svn56005.tmp/repo/project
          org.tmatesoft.svn.core.SVNException: svn: Cannot replace a directory from within
          at
          org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:49)
          at
          org.tmatesoft.svn.core.internal.io.fs.FSUpdateContext.drive(FSUpdateContext.java:277)
          at
          org.tmatesoft.svn.core.internal.io.fs.FSRepository.finishReport(FSRepository.java:1027)
          at
          org.tmatesoft.svn.core.internal.wc.admin.SVNReporter.report(SVNReporter.java:104)
          at org.tmatesoft.svn.core.internal.io.fs.FSRepository.update(FSRepository.java:784)
          at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:162)
          at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:368)
          at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:1)
          at hudson.FilePath.act(FilePath.java:280)
          at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:338)
          at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:295)
          at hudson.model.AbstractProject.checkout(AbstractProject.java:488)
          at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:160)
          at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:126)
          at hudson.model.Run.run(Run.java:573)
          at hudson.model.Build.run(Build.java:107)
          at hudson.model.ResourceController.execute(ResourceController.java:66)
          at hudson.model.Executor.run(Executor.java:59)

          jbq added a comment - Here is the new error message: ERROR: Failed to update file:///tmp/svn56005.tmp/repo/project org.tmatesoft.svn.core.SVNException: svn: Cannot replace a directory from within at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:49) at org.tmatesoft.svn.core.internal.io.fs.FSUpdateContext.drive(FSUpdateContext.java:277) at org.tmatesoft.svn.core.internal.io.fs.FSRepository.finishReport(FSRepository.java:1027) at org.tmatesoft.svn.core.internal.wc.admin.SVNReporter.report(SVNReporter.java:104) at org.tmatesoft.svn.core.internal.io.fs.FSRepository.update(FSRepository.java:784) at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:162) at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:368) at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:1) at hudson.FilePath.act(FilePath.java:280) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:338) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:295) at hudson.model.AbstractProject.checkout(AbstractProject.java:488) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:160) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:126) at hudson.model.Run.run(Run.java:573) at hudson.model.Build.run(Build.java:107) at hudson.model.ResourceController.execute(ResourceController.java:66) at hudson.model.Executor.run(Executor.java:59)

          jbq added a comment -

          Change title to better reflect the fact that Hudson could be more intelligent
          when a project gets deleted

          jbq added a comment - Change title to better reflect the fact that Hudson could be more intelligent when a project gets deleted

          jbq added a comment -

          Project is now disabled when it has been deleted from SVN, so that subsequent
          builds are not triggered.

          jbq added a comment - Project is now disabled when it has been deleted from SVN, so that subsequent builds are not triggered.

          jbq added a comment -

          Also happens during polling:

          Failed to check repository revision for http://svn.repo/project
          org.tmatesoft.svn.core.SVNException: svn: URL 'http://svn.repo/project'
          non-existent in revision '3,763'
          at
          org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:49)
          at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:1985)
          at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2198)
          at hudson.scm.SubversionSCM.parseSvnInfo(SubversionSCM.java:497)
          at hudson.scm.SubversionSCM.pollChanges(SubversionSCM.java:641)
          at hudson.model.AbstractProject.pollSCMChanges(AbstractProject.java:531)
          at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:238)
          at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:270)
          at hudson.triggers.SCMTrigger.run(SCMTrigger.java:73)
          at hudson.triggers.Trigger$1$1.run(Trigger.java:161)
          at hudson.DependencyRunner.(DependencyRunner.java:29)
          at hudson.triggers.Trigger$1.run(Trigger.java:157)
          at hudson.triggers.Trigger.checkTriggers(Trigger.java:154)
          at hudson.triggers.Trigger$Cron.doRun(Trigger.java:137)
          at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:18)
          at java.util.TimerThread.mainLoop(Timer.java:512)
          at java.util.TimerThread.run(Timer.java:462)
          Done. Took 0 seconds
          No changes

          jbq added a comment - Also happens during polling: Failed to check repository revision for http://svn.repo/project org.tmatesoft.svn.core.SVNException: svn: URL 'http://svn.repo/project' non-existent in revision '3,763' at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:49) at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:1985) at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2198) at hudson.scm.SubversionSCM.parseSvnInfo(SubversionSCM.java:497) at hudson.scm.SubversionSCM.pollChanges(SubversionSCM.java:641) at hudson.model.AbstractProject.pollSCMChanges(AbstractProject.java:531) at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:238) at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:270) at hudson.triggers.SCMTrigger.run(SCMTrigger.java:73) at hudson.triggers.Trigger$1$1.run(Trigger.java:161) at hudson.DependencyRunner.(DependencyRunner.java:29) at hudson.triggers.Trigger$1.run(Trigger.java:157) at hudson.triggers.Trigger.checkTriggers(Trigger.java:154) at hudson.triggers.Trigger$Cron.doRun(Trigger.java:137) at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:18) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Done. Took 0 seconds No changes

          jbq added a comment -

          Disable project if an SVNException is thrown during polling. In the future it
          might be good to be more specific, ie recognize that the message in the cause
          contains eg "Cannot replace a directory from within" to avoid disabling the
          project when eg Internet is down.

          NOTE: the fix has not been tested with multiple repositories set (any hint about
          what's the point of multiple repositories per project is welcome).

          jbq added a comment - Disable project if an SVNException is thrown during polling. In the future it might be good to be more specific, ie recognize that the message in the cause contains eg "Cannot replace a directory from within" to avoid disabling the project when eg Internet is down. NOTE: the fix has not been tested with multiple repositories set (any hint about what's the point of multiple repositories per project is welcome).

          akostadinov added a comment -

          Why do we need multiple repositories per project:
          1. Sometimes project modules are in different repositories.
          2. When testing project's interoperability with another project(s).

          Yes, many times that can be avoided but please leave that functionality.

          akostadinov added a comment - Why do we need multiple repositories per project: 1. Sometimes project modules are in different repositories. 2. When testing project's interoperability with another project(s). Yes, many times that can be avoided but please leave that functionality.

          Code changed in hudson
          User: : kohsuke
          Path:
          trunk/hudson/main/core/src/main/java/hudson/scm/SubversionSCM.java
          http://fisheye4.cenqua.com/changelog/hudson/?cs=8767
          Log:
          Don't disable the build too eagerly (issue #1567) (also see issue #763)

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : kohsuke Path: trunk/hudson/main/core/src/main/java/hudson/scm/SubversionSCM.java http://fisheye4.cenqua.com/changelog/hudson/?cs=8767 Log: Don't disable the build too eagerly (issue #1567) (also see issue #763)

          Code changed in hudson
          User: : kohsuke
          Path:
          trunk/www/changelog.html
          http://fisheye4.cenqua.com/changelog/hudson/?cs=8768
          Log:
          Don't disable the build too eagerly (issue #1567) (also see issue #763)

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : kohsuke Path: trunk/www/changelog.html http://fisheye4.cenqua.com/changelog/hudson/?cs=8768 Log: Don't disable the build too eagerly (issue #1567) (also see issue #763)

            Unassigned Unassigned
            jbq jbq
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: