Subgit failed in the middle of process

Hi,

I’m trying to migrate from SVN using subgit, it seems that it works to some extend but after a while, there is an error in the middle of the process and could not continue. The error on the log file states as such here:

[2022-07-15 12:03:57.734][subgit-import][1] svn: E204900: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
com.syntevo.svngitkit.core.b.i: svn: E204900: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
at com.syntevo.svngitkit.core.b.i.a(SourceFile:29)
at com.syntevo.svngitkit.core.c.C.b(SourceFile:740)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:437)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:396)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:342)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:169)
at com.syntevo.svngitkit.core.c.O.c(SourceFile:43)
at com.syntevo.svngitkit.core.c.O.b(SourceFile:36)
at org.tmatesoft.translator.k.aj.a(SourceFile:1465)
at org.tmatesoft.translator.k.aj.c(SourceFile:998)
at org.tmatesoft.translator.k.aj.a(SourceFile:1021)
at org.tmatesoft.translator.k.aj.b(SourceFile:1079)
at org.tmatesoft.translator.k.aj.a(SourceFile:683)
at org.tmatesoft.translator.k.aj.a(SourceFile:652)
at org.tmatesoft.translator.k.d.g.a(SourceFile:241)
at org.tmatesoft.translator.k.d.f.d(SourceFile:47)
at org.tmatesoft.translator.a.J.b(SourceFile:136)
at org.tmatesoft.translator.a.t.c(SourceFile:23)
at org.tmatesoft.translator.b.a(SourceFile:193)
at org.tmatesoft.translator.b.a(SourceFile:144)
at org.tmatesoft.translator.b.a(SourceFile:54)
at org.tmatesoft.translator.process.f.d(SourceFile:136)
at org.tmatesoft.translator.process.f.c(SourceFile:106)
at org.tmatesoft.translator.b.a(SourceFile:79)
at org.tmatesoft.translator.b.a(SourceFile:70)
at org.tmatesoft.translator.SubGit.main(SourceFile:10)
Caused by: org.tmatesoft.svn.core.SVNException: svn: E204900: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
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.io.dav.http.HTTPConnection.request(HTTPConnection.java:760)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:352)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:340)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:914)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:364)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.runReport(DAVRepository.java:1363)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.update(DAVRepository.java:853)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:1896)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:1048)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:784)
at com.syntevo.svngitkit.core.c.C.b(SourceFile:702)
… 24 more
Caused by: com.syntevo.svngitkit.core.b.i: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
at com.syntevo.svngitkit.core.b.i.a(SourceFile:29)
at com.syntevo.svngitkit.core.internal.am.a(SourceFile:639)
at com.syntevo.svngitkit.core.internal.ae.c(SourceFile:492)
at com.syntevo.svngitkit.core.internal.i.b.s.a(SourceFile:567)
at com.syntevo.svngitkit.core.internal.i.b.s.a(SourceFile:560)
at com.syntevo.svngitkit.core.internal.i.b.s.c(SourceFile:205)
at com.syntevo.svngitkit.core.internal.i.d.e(SourceFile:295)
at com.syntevo.svngitkit.core.internal.i.b.k(SourceFile:171)
at com.syntevo.svngitkit.core.internal.d.v.e(SourceFile:104)
at com.syntevo.svngitkit.core.internal.d.h.a(SourceFile:213)
at com.syntevo.svngitkit.core.internal.d.n.a(SourceFile:88)
at com.syntevo.svngitkit.core.internal.d.n.closeDir(SourceFile:281)
at com.syntevo.svngitkit.core.internal.d.p.closeDir(SourceFile:115)
at com.syntevo.svngitkit.core.internal.d.F.closeDir(SourceFile:99)
at com.syntevo.svngitkit.core.internal.d.G.closeDir(SourceFile:129)
at org.tmatesoft.svn.core.internal.wc.SVNCancellableEditor.closeDir(SVNCancellableEditor.java:102)
at org.tmatesoft.svn.core.internal.io.dav.handlers.DAVEditorHandler.endElement(DAVEditorHandler.java:497)
at org.tmatesoft.svn.core.internal.io.dav.handlers.BasicDAVHandler.endElement(BasicDAVHandler.java:103)
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:610)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1718)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2883)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:898)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:863)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:220)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:451)
… 34 more
Caused by: java.io.IOException: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
at com.syntevo.svngitkit.core.b.a(SourceFile:260)
at com.syntevo.svngitkit.core.b.read(SourceFile:201)
at org.eclipse.jgit.diff.RawText.isBinary(RawText.java:247)
at com.syntevo.svngitkit.core.internal.am.a(SourceFile:636)
… 65 more
Caused by: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
at com.syntevo.svngitkit.core.b.a(SourceFile:255)
… 68 more
[2022-07-15 12:03:57.825][subgit-import][1] Restoring refs to reflect SVN state.
[2022-07-15 12:03:57.838][subgit-import][1] Refs were successfully updated
[2022-07-15 12:03:57.841][subgit-import][1] svn: E204900: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
org.tmatesoft.translator.util.f: svn: E204900: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
at org.tmatesoft.translator.util.f.c(SourceFile:109)
at org.tmatesoft.translator.util.f.b(SourceFile:75)
at org.tmatesoft.translator.k.aj.c(SourceFile:1001)
at org.tmatesoft.translator.k.aj.a(SourceFile:1021)
at org.tmatesoft.translator.k.aj.b(SourceFile:1079)
at org.tmatesoft.translator.k.aj.a(SourceFile:683)
at org.tmatesoft.translator.k.aj.a(SourceFile:652)
at org.tmatesoft.translator.k.d.g.a(SourceFile:241)
at org.tmatesoft.translator.k.d.f.d(SourceFile:47)
at org.tmatesoft.translator.a.J.b(SourceFile:136)
at org.tmatesoft.translator.a.t.c(SourceFile:23)
at org.tmatesoft.translator.b.a(SourceFile:193)
at org.tmatesoft.translator.b.a(SourceFile:144)
at org.tmatesoft.translator.b.a(SourceFile:54)
at org.tmatesoft.translator.process.f.d(SourceFile:136)
at org.tmatesoft.translator.process.f.c(SourceFile:106)
at org.tmatesoft.translator.b.a(SourceFile:79)
at org.tmatesoft.translator.b.a(SourceFile:70)
at org.tmatesoft.translator.SubGit.main(SourceFile:10)
Caused by: com.syntevo.svngitkit.core.b.i: svn: E204900: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
at com.syntevo.svngitkit.core.b.i.a(SourceFile:29)
at com.syntevo.svngitkit.core.c.C.b(SourceFile:740)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:437)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:396)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:342)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:169)
at com.syntevo.svngitkit.core.c.O.c(SourceFile:43)
at com.syntevo.svngitkit.core.c.O.b(SourceFile:36)
at org.tmatesoft.translator.k.aj.a(SourceFile:1465)
at org.tmatesoft.translator.k.aj.c(SourceFile:998)
… 16 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E204900: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
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.io.dav.http.HTTPConnection.request(HTTPConnection.java:760)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:352)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:340)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:914)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:364)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.runReport(DAVRepository.java:1363)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.update(DAVRepository.java:853)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:1896)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:1048)
at com.syntevo.svngitkit.core.c.C.a(SourceFile:784)
at com.syntevo.svngitkit.core.c.C.b(SourceFile:702)
… 24 more
Caused by: com.syntevo.svngitkit.core.b.i: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
at com.syntevo.svngitkit.core.b.i.a(SourceFile:29)
at com.syntevo.svngitkit.core.internal.am.a(SourceFile:639)
at com.syntevo.svngitkit.core.internal.ae.c(SourceFile:492)
at com.syntevo.svngitkit.core.internal.i.b.s.a(SourceFile:567)
at com.syntevo.svngitkit.core.internal.i.b.s.a(SourceFile:560)
at com.syntevo.svngitkit.core.internal.i.b.s.c(SourceFile:205)
at com.syntevo.svngitkit.core.internal.i.d.e(SourceFile:295)
at com.syntevo.svngitkit.core.internal.i.b.k(SourceFile:171)
at com.syntevo.svngitkit.core.internal.d.v.e(SourceFile:104)
at com.syntevo.svngitkit.core.internal.d.h.a(SourceFile:213)
at com.syntevo.svngitkit.core.internal.d.n.a(SourceFile:88)
at com.syntevo.svngitkit.core.internal.d.n.closeDir(SourceFile:281)
at com.syntevo.svngitkit.core.internal.d.p.closeDir(SourceFile:115)
at com.syntevo.svngitkit.core.internal.d.F.closeDir(SourceFile:99)
at com.syntevo.svngitkit.core.internal.d.G.closeDir(SourceFile:129)
at org.tmatesoft.svn.core.internal.wc.SVNCancellableEditor.closeDir(SVNCancellableEditor.java:102)
at org.tmatesoft.svn.core.internal.io.dav.handlers.DAVEditorHandler.endElement(DAVEditorHandler.java:497)
at org.tmatesoft.svn.core.internal.io.dav.handlers.BasicDAVHandler.endElement(BasicDAVHandler.java:103)
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:610)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1718)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2883)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:898)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:863)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:220)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:451)
… 34 more
Caused by: java.io.IOException: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
at com.syntevo.svngitkit.core.b.a(SourceFile:260)
at com.syntevo.svngitkit.core.b.read(SourceFile:201)
at org.eclipse.jgit.diff.RawText.isBinary(RawText.java:247)
at com.syntevo.svngitkit.core.internal.am.a(SourceFile:636)
… 65 more
Caused by: com.syntevo.svngitkit.core.b.j: Process finished with non-zero exit code: 128
at com.syntevo.svngitkit.core.b.a(SourceFile:255)
… 68 more

Can anyone help me what is the cause of this?

thanks!

Hello!

I’m afraid this only snippet on the log is not enough to tell for sure what is happening, it only contains some of the consequent exception while the initial one is absent, better to have the full log to investigate it. Also, it would make sense checking logs on SVN side – basically, the E204900 error usually indicates an error that comes from SVN side – like, insufficient permissions leading to inability to read some paths in SVN.

Hi Ildar,

Thank you for the answer. I noticed that you have had another issue with similar error code and log in this link. Does it fix the error for that issue?

I was just checking my gitlab repository, and noticed that I do not have any hooks configured, so I was thinking maybe should there any other thing that I can look into?

Also, what kind of information would be helpful so that you can help me with the issue?
The SVN server that I am trying to migrate has several roots, and currently I am trying with the most basic root configuration (the one that has branches, tags and trunk). I have tried with other roots as well, but it always got a similar error after some time.

By the way, here’s the full log:
LogFile.log (803.1 KB)

Hello,

thank you for the log!

I’m afraid that the issue and the error message are pretty common and can be caused by different issues, so it’s hard to tell for sure if that case is really similar one or not. Besides, we got the full log in that case, so the full picture was no clear. Finally, we had a mirrored repository in that case, hooks play a big role in mirror but not in one time import which you are performing, so hardly that case is related to this one.
SubGit does install some hooks that it needs for normal mirroring operations, but it only does that for the mirrors – that is, when ‘subgit install’ is invoked. If the operation is ‘subgit import’ then it does not put the hooks, so it is expected there are no hooks in the repository.
Judging from the logs, the import stops at the r100 when SubGit tries to read the SVN tag called ‘platform’. So my assumption is that the SVN user that SubGit uses to connect to the SVN repository does not have enough permissions to read from that path could it be the case?
By the way, as far as I found, SubGit was invoked on behalf of user root which is not desired in GitLab environment – in this case, all the files SubGit creates belong to root while GitLab runs on behalf of git user and may not be able to work with this import repository, better to run SubGit as git or to change files ownership for the repository after the import finishes.

Hi,

I see, thank you for the information.

For my problem, unfortunately there’s nothing that I can do regarding the SVN server. This is unfortunate though as using SubGit would be a really fast process. But, with this issue I’m just going to do it manually with git-svn features from GIT.

Regarding the root, I’m not sure why but when I’m in my user environment, I could not access the gitlab folder when I wanted to access the hash keys (for the repo I mean). Hence, it points me to root instead of my git user. This problem is not linked to the error message though right?

Thank you for your help with this though!

Hi,

you’re right, the user issue is not related to the error message. In fact, it doesn’t even affect the import process, only the post-import GitLab operations will be affected when the import is being performed on behalf of root, it’s crucial GitLab’s git user has access to all the objects in a repository, otherwise GitLab will fail to work with the repository.
As for the error – could you please at least try to checkout that tag of the whole revision to make sure it’s available:

svn checkout -r 100 https://CustomSVNLink.com/svn/RootProject

please use the same SVN user that SubGit is set to use.
If the user has no enough permissions to read that revision and path, then I’m afraid the only proper solution is to find a way adding the needed permissions. A possible workaround to get other parts of the repository is to try excluding this tag from the import so that the tag is not imported and thus the problem is no hit. This can be done as follows:

  • prepare the repository for the import:

     subgit configure --svn-url https://CustomSVNLink.com/svn/RootProject RootProject
    
  • add the excludeTag directive to avoid importing the platform tag:

      git config -f RootProject/subgit/config svn.excludeTags tags/platform
    

    so that the mapping configuration looks like this:

      trunk = trunk:refs/heads/master
      branches = branches/*:refs/heads/*
      tags = tags/*:refs/tags/*
      excludeTags = tags/platform
    
  • run import using the pre-configured repository:

      subgit import RootProject
    

Note, however, that if the user has no rights for other paths in the repository, the import may fail again on a later revision.