[JIRA] (JENKINS-42798) SVN update failure causes fresh checkout

4 views
Skip to first unread message

thapar3088@gmail.com (JIRA)

unread,
Mar 15, 2017, 5:40:01 AM3/15/17
to jenkinsc...@googlegroups.com
Beast Mode created an issue
 
Jenkins / Bug JENKINS-42798
SVN update failure causes fresh checkout
Issue Type: Bug Bug
Assignee: Unassigned
Components: subversion-plugin
Created: 2017/Mar/15 9:39 AM
Priority: Major Major
Reporter: Beast Mode

We sometimes face an issue in Jenkins that when an svn update step fails it locks the workspace, so when the next build is run it notices this and decides to wipe out the workspace and check out a new one, which takes enormous amount of time to build it again.

--------------------------------------------------------------------------------------------------------------
[02:38:31] - Update dev
Success build fororg.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder@1cae7e0
Updating http://repos/wss/soseco/dev at revision '2017-03-08T18:35:59.190 +0530'
At revision 311237

Updating http://repos/wss/soseco/dev at revision '2017-03-08T18:35:59.190 +0530'
Workspace appear to be locked, so getting a fresh workspace
Cleaning local Directory ../../../src/dev
Checking out http://repos/wss/soseco/dev at revision '2017-03-08T18:35:59.190 +0530'
--------------------------------------------------------------------------------------------------------------

Instead of getting a fresh workspace, it should simply fail the build. And then the user can check why it happened and do svn cleanup.

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.3.0#73011-sha1:3c73d0e)
Atlassian logo

sim9@editingarchive.com (JIRA)

unread,
Jan 30, 2020, 6:53:03 PM1/30/20
to jenkinsc...@googlegroups.com
Robby Zinchak commented on Bug JENKINS-42798
 
Re: SVN update failure causes fresh checkout

We are also having this issue.  It is frustrating as any time a build is canceled and it happens to be during the svn update step, the next build will totally wipe out our workspace.  In our team (and probably most 3D-heavy unity games), this results in the build server being down for a full day each time this happens, as it has to sync many gigabytes from SVN, then recreate all its build caches for each target platform.

 

Reverting C:\JenkinsBuild\da-build\dragonaudit to depth infinity with ignoreExternals: true
Aborted by admin
 ERROR: Failed to update https://PATHREMOVED/dragonaudit/trunk/dragonaudit
org.tmatesoft.svn.core.SVNException: svn: E200030: java.nio.channels.ClosedChannelException
 at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70)
 at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57)
 at org.tmatesoft.svn.core.internal.db.SVNSqlJetDb.createSqlJetError(SVNSqlJetDb.java:195)
 at org.tmatesoft.svn.core.internal.db.SVNSqlJetDb.beginTransaction(SVNSqlJetDb.java:211)
 at org.tmatesoft.svn.core.internal.db.SVNSqlJetStatement.next(SVNSqlJetStatement.java:88)
 at org.tmatesoft.svn.core.internal.db.SVNSqlJetSelectStatement.next(SVNSqlJetSelectStatement.java:113)
 at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.fetchWorkQueue(SVNWCDb.java:1434)
 at org.tmatesoft.svn.core.internal.wc17.SVNWCContext.releaseWriteLock(SVNWCContext.java:1761)
 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.run(SvnNgRevert.java:69)
 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.run(SvnNgRevert.java:41)
 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
 at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
 at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1239)
 at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
 at org.tmatesoft.svn.core.wc.SVNWCClient.doRevert(SVNWCClient.java:1815)
 at hudson.scm.subversion.UpdateWithRevertUpdater$TaskImpl.preUpdate(UpdateWithRevertUpdater.java:63)
 at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:153)
 at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:168)
 at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:1040)
 at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:1016)
 at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:989)
 at hudson.FilePath.act(FilePath.java:1078)
 at hudson.FilePath.act(FilePath.java:1061)
 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:936)
 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:863)
 at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:124)
 at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:93)
 at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:80)
 at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
 at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
 at java.util.concurrent.FutureTask.run(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)
 Caused by: org.tmatesoft.sqljet.core.SqlJetIOException: java.nio.channels.ClosedChannelException: error code is IOERR
 at org.tmatesoft.sqljet.core.internal.fs.SqlJetFile.lock(SqlJetFile.java:565)
 at org.tmatesoft.sqljet.core.internal.pager.SqlJetPager.waitOnLock(SqlJetPager.java:2515)
 at org.tmatesoft.sqljet.core.internal.pager.SqlJetPager.sharedLock(SqlJetPager.java:1234)
 at org.tmatesoft.sqljet.core.internal.pager.SqlJetPager.acquirePage(SqlJetPager.java:1020)
 at org.tmatesoft.sqljet.core.internal.btree.SqlJetBtreeShared.getPage(SqlJetBtreeShared.java:339)
 at org.tmatesoft.sqljet.core.internal.btree.SqlJetBtree.lockBtree(SqlJetBtree.java:734)
 at org.tmatesoft.sqljet.core.internal.btree.SqlJetBtree.beginTrans(SqlJetBtree.java:923)
 at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.doBeginTransaction(SqlJetEngine.java:561)
 at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.access$100(SqlJetEngine.java:55)
 at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine$9.runSynchronized(SqlJetEngine.java:475)
 at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runSynchronized(SqlJetEngine.java:217)
 at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.beginTransaction(SqlJetEngine.java:471)
 at org.tmatesoft.svn.core.internal.db.SVNSqlJetDb.beginTransaction(SVNSqlJetDb.java:206)
 ... 30 more
 Caused by: java.nio.channels.ClosedChannelException
 at sun.nio.ch.FileChannelImpl.ensureOpen(Unknown Source)
 at sun.nio.ch.FileChannelImpl.tryLock(Unknown Source)
 at org.tmatesoft.sqljet.core.internal.fs.SqlJetFileLockManager$1.createLock(SqlJetFileLockManager.java:57)
 at org.tmatesoft.sqljet.core.internal.fs.SqlJetFileLockManager.createLock(SqlJetFileLockManager.java:81)
 at org.tmatesoft.sqljet.core.internal.fs.SqlJetFileLockManager.tryLock(SqlJetFileLockManager.java:102)
 at org.tmatesoft.sqljet.core.internal.fs.SqlJetFile.lock(SqlJetFile.java:476)
 ... 42 more
 ERROR: Subversion update failed

 

Reverting C:\JenkinsBuild\da-build\dragonaudit to depth infinity with ignoreExternals: true
 Workspace appear to be locked, so getting a fresh workspace
 Cleaning local Directory dragonaudit

In this situation, it would be much preferred to do a svn clean instead and try to gracefully recover the workspace first before giving up and nuking it.

This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages