jenkinsci / jenkinsci/subversion-plugin

[JENKINS-36567] org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:194)

Open
#1,376 0 comments 0 reactions 0 assignees View on GitHub
component:subversion-plugin imported-jira-issue priority:minor resolution:unresolved
Dominant language
Java
Stars
131
Forks
275
Avg merge
12h 4m
Merged PRs (30d)
6

Description

Occasionally SVN checkout started to fail. An exception is thrown during working copy revert action:

```
Reverting /path/to/workspace to depth infinity with ignoreExternals: false
FATAL: null
java.lang.StackOverflowError
at java.io.UnixFileSystem.canonicalize0(Native Method)
at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:172)
at java.io.File.getCanonicalPath(File.java:618)
at java.io.File.getCanonicalFile(File.java:643)
at org.tmatesoft.sqljet.core.internal.fs.SqlJetFileSystem.open(SqlJetFileSystem.java:140)
at org.tmatesoft.sqljet.core.internal.pager.SqlJetPager.openJournal(SqlJetPager.java:3003)
at org.tmatesoft.sqljet.core.internal.pager.SqlJetPager.begin(SqlJetPager.java:2782)
at org.tmatesoft.sqljet.core.internal.btree.SqlJetBtree.beginTrans(SqlJetBtree.java:931)
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:204)
at org.tmatesoft.svn.core.internal.wc17.db.SvnWcDbRevert.readRevertInfo(SvnWcDbRevert.java:280)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:194)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:352)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:352)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:352)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:352)

```

This start to happen occasionally on some jobs after upgrading Jenkins to version 1.648 (from 1.536).

In this upgrade we move SVN plugin to version 2.5.7 with subversion 1.8 format but svn credentials on externals was not recognized, so that jenkins was not able to trigger correctly the job via scm polling or to analyse the change set.

For this reason, plugin has been reverted to 2.4.5 and subversion 1.7.

This seems to be related by Check-out Strategy being set to Use 'svn update' as much as possible, with 'svn revert' before update in project settings (which causes SVN revert to run as a result).

By changing the Check-out startegy with one that not perform a revert action works fine.

This issue is similar to https://issues.jenkins-ci.org/browse/JENKINS-32515 but in our case no "org.tmatesoft.svn.core.SVNException" is thrown.

We can not understand what could be the problem because not systematically present.

But each time that happen the workspace is dirty and we need to clean it up before restarting the job.

Any advice to solve the problem is welcome.

---
Originally reported by luca86, imported from: org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:194)


  • status: Open
  • priority: Minor
  • component(s): subversion-plugin
  • label(s): jenkins, plugin, subversion, svn
  • resolution: Unresolved
  • votes: 0
  • watchers: 1
  • imported: 20251212-090250

Raw content of original issue

Occasionally SVN checkout started to fail. An exception is thrown during working copy revert action:


Reverting /path/to/workspace to depth infinity with ignoreExternals: false

FATAL: null
java.lang.StackOverflowError
at java.io.UnixFileSystem.canonicalize0(Native Method)
at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:172)
at java.io.File.getCanonicalPath(File.java:618)
at java.io.File.getCanonicalFile(File.java:643)
at org.tmatesoft.sqljet.core.internal.fs.SqlJetFileSystem.open(SqlJetFileSystem.java:140)
at org.tmatesoft.sqljet.core.internal.pager.SqlJetPager.openJournal(SqlJetPager.java:3003)
at org.tmatesoft.sqljet.core.internal.pager.SqlJetPager.begin(SqlJetPager.java:2782)
at org.tmatesoft.sqljet.core.internal.btree.SqlJetBtree.beginTrans(SqlJetBtree.java:931)
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:204)
at org.tmatesoft.svn.core.internal.wc17.db.SvnWcDbRevert.readRevertInfo(SvnWcDbRevert.java:280)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:194)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:352)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:352)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:352)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.restore(SvnNgRevert.java:352)

This start to happen occasionally on some jobs after upgrading Jenkins to version 1.648 (from 1.536).
In this upgrade we move SVN plugin to version 2.5.7 with subversion 1.8 format but svn credentials on externals was not recognized, so that jenkins was not able to trigger correctly the job via scm polling or to analyse the change set.
For this reason, plugin has been reverted to 2.4.5 and subversion 1.7.

This seems to be related by Check-out Strategy being set to Use 'svn update' as much as possible, with 'svn revert' before update in project settings (which causes SVN revert to run as a result).
By changing the Check-out startegy with one that not perform a revert action works fine.

This issue is similar to https://issues.jenkins-ci.org/browse/JENKINS-32515 but in our case no "org.tmatesoft.svn.core.SVNException" is thrown.

We can not understand what could be the problem because not systematically present.
But each time that happen the workspace is dirty and we need to clean it up before restarting the job.
Any advice to solve the problem is welcome.

environment

```
Jenkins ver. 1.648

java version 1.7.0_95

Subversion Plug-in: 2.4.5
```

1 attachment

- [console_log.txt](https://issues.jenkins.io/secure/attachment/33264/console_log.txt)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.