Add support for javahl as alternative to svnkit

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      Unlike FishEye Hudson supports only svnkit to access Subversion repositories.
      Svnkit may not be a viable solution for all shops. We're running Hudson
      (together with Subversion, Confluence, FishEye, Nexus and other development
      gear) on a single Solaris 10 box (T2000 with 8 cores, 32gb of memory and
      multiple ZFS formatted SAN volumes).

      Unlike javahl svnkit forks process to execute unix commands like "ls -ln" all
      over the place. Sometimes a process is not returning / finishing so svnkit is
      waiting for ever and the corresponding build job never finishes. A corresponding
      thread dump looks like the following:

      "Executor #1 for master" Id=27 RUNNABLE (in native)
      at java.lang.UNIXProcess.forkAndExec(Native Method)
      at java.lang.UNIXProcess.(UNIXProcess.java:53)
      at java.lang.ProcessImpl.start(ProcessImpl.java:65)
      at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
      at java.lang.Runtime.exec(Runtime.java:593)
      at java.lang.Runtime.exec(Runtime.java:509)
      at
      org.tmatesoft.svn.core.internal.wc.SVNFileUtil.execCommand(SVNFileUtil.java:1306)
      at
      org.tmatesoft.svn.core.internal.wc.SVNFileUtil.execCommand(SVNFileUtil.java:1297)
      at
      org.tmatesoft.svn.core.internal.wc.SVNFileUtil.execCommand(SVNFileUtil.java:1292)
      at
      org.tmatesoft.svn.core.internal.wc.SVNFileUtil.isExecutable(SVNFileUtil.java:1029)
      at org.tmatesoft.svn.core.internal.wc.SVNFileUtil.copyFile(SVNFileUtil.java:500)
      at org.tmatesoft.svn.core.internal.wc.SVNFileUtil.setReadonly(SVNFileUtil.java:392)
      at
      org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.markLogProcessed(SVNAdminArea.java:1308)
      at
      org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.runLogs(SVNAdminArea.java:561)
      at
      org.tmatesoft.svn.core.internal.wc.SVNUpdateEditor$SVNDirectoryInfo.runLogs(SVNUpdateEditor.java:1539)
      at
      org.tmatesoft.svn.core.internal.wc.SVNUpdateEditor.closeDir(SVNUpdateEditor.java:495)
      at
      org.tmatesoft.svn.core.internal.wc.SVNAmbientDepthFilterEditor.closeDir(SVNAmbientDepthFilterEditor.java:119)
      at
      org.tmatesoft.svn.core.internal.wc.SVNCancellableEditor.closeDir(SVNCancellableEditor.java:100)
      at
      org.tmatesoft.svn.core.internal.io.dav.handlers.DAVEditorHandler.endElement(DAVEditorHandler.java:448)
      at
      org.tmatesoft.svn.core.internal.io.dav.handlers.BasicDAVHandler.endElement(BasicDAVHandler.java:94)
      at
      com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
      at
      com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
      at
      com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
      at
      com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
      at
      com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
      at
      com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
      at
      com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
      at
      com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
      at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
      at
      com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
      at
      com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
      at
      org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:655)
      at
      org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:620)
      at
      org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:207)
      at
      org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:321)
      at
      org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:255)
      at
      org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:243)
      at
      org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:256)
      at
      org.tmatesoft.svn.core.internal.io.dav.DAVRepository.runReport(DAVRepository.java:1189)
      at
      org.tmatesoft.svn.core.internal.io.dav.DAVRepository.update(DAVRepository.java:1055)
      at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:241)
      at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:159)
      at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:155)
      at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:405)
      at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:376)
      at hudson.FilePath.act(FilePath.java:363)
      at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:370)
      at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:321)
      at hudson.model.AbstractProject.checkout(AbstractProject.java:631)
      at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:260)
      at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:234)
      at hudson.model.Run.run(Run.java:793)
      at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:205)
      at hudson.model.ResourceController.execute(ResourceController.java:70)
      at hudson.model.Executor.run(Executor.java:88)

      To terminate the hanging build we have to recycle Hudson via "kill -9".

      Javahl doesn't have this weakness. So for us using javahl instead of svnkit
      would be a better option than regularly checking for hanging builds and
      recycling Hudson.

            Assignee:
            Unassigned
            Reporter:
            tjuerge
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: