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

Gracefully handle project deleted in SVN

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Component/s: subversion-plugin
    • Labels:
      None
    • Environment:
      Platform: All, OS: All

      Description

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

        Issue Links

          Activity

          Hide
          jbq jbq added a comment -

          Created an attachment (id=84)
          Contents of the failure email message

          Show
          jbq jbq added a comment - Created an attachment (id=84) Contents of the failure email message
          Hide
          jbq 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"

          Show
          jbq 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"
          Hide
          jbq 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

          Show
          jbq 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
          Hide
          jbq 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)

          Show
          jbq 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)
          Hide
          jbq jbq added a comment -

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

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

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

          Show
          jbq jbq added a comment - Project is now disabled when it has been deleted from SVN, so that subsequent builds are not triggered.
          Hide
          jbq 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

          Show
          jbq 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
          Hide
          jbq 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).

          Show
          jbq 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).
          Hide
          akostadinov 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.

          Show
          akostadinov 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.
          Hide
          scm_issue_link 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)

          Show
          scm_issue_link 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)
          Hide
          scm_issue_link 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)

          Show
          scm_issue_link 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)

            People

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

              Dates

              • Created:
                Updated:
                Resolved: