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
    • Similar Issues:
      Show 5 results

      Description

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

        Attachments

          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: