Prevent Subversion working copy from getting locked

XMLWordPrintable

    • 11
    • Severity 3 - Minor
    • 1

      Summary

      If we start a build but then choose to stop the build while it's in the middle of the Source Code Checkout, Bamboo leaves the SVN working copy in a locked state and therefore the next time we start the build, it will fail with the "svn: E155004" error stating the directory is locked.

      It would be nice if Bamboo could clean up the working copy after stopping a build or if the build was interrupted to avoid this problem.

      Steps to Reproduce

      1. Run a build configured to checkout code from a Subversion repository.
      2. Stop build while Bamboo is executing the Source Code Checkout task.
      3. Start a new build.

      Expected Results

      The new build should run without any problems.

      Actual Results

      The new build fails with the following exception:

      error	01-Aug-2016 17:46:39	Error occurred while running Task 'Checkout Default Repository(1)' of type com.atlassian.bamboo.plugins.vcs:task.vcs.checkout.
      error	01-Aug-2016 17:46:39	java.lang.RuntimeException: com.atlassian.bamboo.repository.RepositoryException: Unable to retrieve source code for revision '2', plan 'SVN-SUB-JOB1': svn: E155004: Working copy '/Users/bamboo/Documents/Atlassian/bamboo/bamboo-5.10.3/home/xml-data/build-dir/163841/SVN-SUB-JOB1' locked
      error	01-Aug-2016 17:46:39	svn: E155004: '/Users/bamboo/Documents/Atlassian/bamboo/bamboo-5.10.3/home/xml-data/build-dir/163841/SVN-SUB-JOB1' is already locked.
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.executor.RetryingTaskExecutor.rerun(RetryingTaskExecutor.java:144)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.executor.RetryingTaskExecutor.runTask(RetryingTaskExecutor.java:88)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.executor.RetryingTaskExecutor.retry(RetryingTaskExecutor.java:203)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.executor.RetryingTaskExecutor.retry(RetryingTaskExecutor.java:188)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.plugins.vcs.task.VcsCheckoutTask.execute(VcsCheckoutTask.java:145)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.task.TaskExecutorImpl.lambda$executeTasks$125(TaskExecutorImpl.java:273)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.task.TaskExecutorImpl.executeTaskWithPrePostActions(TaskExecutorImpl.java:202)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.task.TaskExecutorImpl.executeTasks(TaskExecutorImpl.java:273)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.task.TaskExecutorImpl.executePreparationTasks(TaskExecutorImpl.java:83)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.build.pipeline.tasks.PrepareBuildTask.call(PrepareBuildTask.java:74)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.v2.build.agent.DefaultBuildAgent.build(DefaultBuildAgent.java:215)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.v2.build.agent.BuildAgentControllerImpl$1.call(BuildAgentControllerImpl.java:139)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.v2.build.agent.BuildAgentControllerImpl$1.call(BuildAgentControllerImpl.java:130)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.variable.CustomVariableContextImpl.withVariableSubstitutor(CustomVariableContextImpl.java:215)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.v2.build.agent.BuildAgentControllerImpl.waitAndPerformBuild(BuildAgentControllerImpl.java:129)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.v2.build.agent.DefaultBuildAgent$1.run(DefaultBuildAgent.java:137)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:49)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:31)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:20)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:52)
      error	01-Aug-2016 17:46:39		at java.lang.Thread.run(Thread.java:745)
      error	01-Aug-2016 17:46:39	Caused by: com.atlassian.bamboo.repository.RepositoryException: Unable to retrieve source code for revision '2', plan 'SVN-SUB-JOB1': svn: E155004: Working copy '/Users/bamboo/Documents/Atlassian/bamboo/bamboo-5.10.3/home/xml-data/build-dir/163841/SVN-SUB-JOB1' locked
      error	01-Aug-2016 17:46:39	svn: E155004: '/Users/bamboo/Documents/Atlassian/bamboo/bamboo-5.10.3/home/xml-data/build-dir/163841/SVN-SUB-JOB1' is already locked.
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.repository.svn.SvnRepository.retrieveSourceCode(SvnRepository.java:627)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.plugins.vcs.task.VcsCheckoutTask.fillWorkingDirFromVcs(VcsCheckoutTask.java:280)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.plugins.vcs.task.VcsCheckoutTask.access$000(VcsCheckoutTask.java:57)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.plugins.vcs.task.VcsCheckoutTask$1.call(VcsCheckoutTask.java:150)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.plugins.vcs.task.VcsCheckoutTask$1.call(VcsCheckoutTask.java:146)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.executor.RetryingTaskExecutor.rerun(RetryingTaskExecutor.java:108)
      error	01-Aug-2016 17:46:39		... 20 more
      error	01-Aug-2016 17:46:39	Caused by: org.tmatesoft.svn.core.SVNException: svn: E155004: Working copy '/Users/bamboo/Documents/Atlassian/bamboo/bamboo-5.10.3/home/xml-data/build-dir/163841/SVN-SUB-JOB1' locked
      error	01-Aug-2016 17:46:39	svn: E155004: '/Users/bamboo/Documents/Atlassian/bamboo/bamboo-5.10.3/home/xml-data/build-dir/163841/SVN-SUB-JOB1' is already locked.
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb$WCLockObtain.transaction(SVNWCDb.java:5722)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.db.SVNSqlJetDb.runTransaction(SVNSqlJetDb.java:256)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.db.SVNSqlJetDb.runTransaction(SVNSqlJetDb.java:250)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.obtainWCLock(SVNWCDb.java:5655)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.wc17.SVNWCContext.acquireWriteLock(SVNWCContext.java:1632)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.update(SvnNgAbstractUpdate.java:106)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgUpdate.run(SvnNgUpdate.java:38)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgUpdate.run(SvnNgUpdate.java:18)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:311)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:291)
      error	01-Aug-2016 17:46:39		at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:387)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.repository.svn.SvnRepository.update(SvnRepository.java:1315)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.repository.svn.SvnRepository.retrieveSourceCodeWithException(SvnRepository.java:735)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.repository.svn.SvnRepository.retrieveSourceCodeWithCleanup(SvnRepository.java:661)
      error	01-Aug-2016 17:46:39		at com.atlassian.bamboo.repository.svn.SvnRepository.retrieveSourceCode(SvnRepository.java:604)
      error	01-Aug-2016 17:46:39		... 25 more
      

      Workaround

      It is necessary to manually clear the SVN working copy for the failing plan at $BAMBOO_HOME/xml-data/build-dir/PROJ-PLAN-JOB1 to be able to start new builds. Update and clean your working copy:

      svn update
      svn cleanup
      

            Assignee:
            Unassigned
            Reporter:
            Bruno Rosa
            Votes:
            10 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated: