Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-5162

svnkit file:// performance degredation due to tmp files

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Low
    • Resolution: Fixed
    • Affects Version/s: 3.3.2
    • Fix Version/s: 3.4.1
    • Component/s: None
    • Labels:
      None

      Description

      SVNKit could show slowness for file:// protocol although native svn client is very responsive. Eg. native client returned very quickly

      $ svn diff --summarize -r 44421:44422 file:///home/czawadka/repos/X@44422
      real    4m3.358s
      user    1m54.759s
      sys     0m52.803s
      

      but the same command using jsvn has been running for over 1h still without success.

      Eventually Fisheye using SVNKit fails with

      2014-04-14 11:15:21,785 ERROR - Problem processing revisions from repo X due to class com.cenqua.fisheye.rep.RepositoryClientException - org.apache.subversion.javahl.ClientException: svn: E135003: Unable to make name for '/data/atlas
      sian/fisheye/data/var/tmp/svn'
      com.cenqua.fisheye.rep.RepositoryClientException: org.apache.subversion.javahl.ClientException: svn: E135003: Unable to make name for '/data/atlassian/fisheye/data/var/tmp/svn'
              at com.cenqua.fisheye.svn.SvnThrottledClient.executeNoThrottle(SvnThrottledClient.java:176)
              at com.cenqua.fisheye.svn.SvnThrottledClient.execute(SvnThrottledClient.java:145)
              at com.cenqua.fisheye.svn.SvnThrottledClient.diff(SvnThrottledClient.java:201)
              at com.atlassian.fisheye.svn.Svn2Infill2Processor.processDiffPaths(Svn2Infill2Processor.java:742)
              at com.atlassian.fisheye.svn.Svn2Infill2Processor.infillChangeSet(Svn2Infill2Processor.java:256)
              at com.atlassian.fisheye.svn.Svn2Infill2Processor.access$100(Svn2Infill2Processor.java:81)
              at com.atlassian.fisheye.svn.Svn2Infill2Processor$1.perform(Svn2Infill2Processor.java:128)
              at com.atlassian.fisheye.svn.Svn2Infill2Processor$1.perform(Svn2Infill2Processor.java:113)
              at com.cenqua.fisheye.cache.BaseRevisionCache.withDbWriteLock(BaseRevisionCache.java:1014)
              at com.atlassian.fisheye.svn.Svn2Infill2Processor.process(Svn2Infill2Processor.java:113)
              at com.atlassian.fisheye.svn.Svn2Scanner.slurpRepository(Svn2Scanner.java:210)
              at com.atlassian.fisheye.svn.Svn2Scanner.doSlurpTransaction(Svn2Scanner.java:179)
              at com.cenqua.fisheye.rep.BaseRepositoryScanner.ping(BaseRepositoryScanner.java:75)
              at com.cenqua.fisheye.rep.BaseRepositoryEngine.doSlurp(BaseRepositoryEngine.java:86)
              at com.cenqua.fisheye.rep.RepositoryEngine.slurp(RepositoryEngine.java:397)
              at com.cenqua.fisheye.rep.ping.IndexingPingRequest.doRequest(IndexingPingRequest.java:25)
              at com.cenqua.fisheye.rep.ping.IncrementalPingRequest.doRequest(IncrementalPingRequest.java:30)
              at com.cenqua.fisheye.rep.ping.PingRequest.process(PingRequest.java:54)
              at com.cenqua.fisheye.rep.RepositoryHandle.processPingRequests(RepositoryHandle.java:219)
              at com.cenqua.fisheye.rep.RepositoryHandle.access$100(RepositoryHandle.java:56)
              at com.cenqua.fisheye.rep.RepositoryHandle$2.run(RepositoryHandle.java:175)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
              at java.lang.Thread.run(Thread.java:744)
      Caused by: org.apache.subversion.javahl.ClientException: svn: E135003: Unable to make name for '/data/atlassian/fisheye/data/var/tmp/svn'
              at org.apache.subversion.javahl.ClientException.fromException(ClientException.java:68)
              at org.tmatesoft.svn.core.javahl17.SVNClientImpl.getClientException(SVNClientImpl.java:1294)
              at org.tmatesoft.svn.core.javahl17.SVNClientImpl.diff(SVNClientImpl.java:1008)
              at org.apache.subversion.javahl.SVNClient.diff(SVNClient.java:182)
              at com.cenqua.fisheye.svn.SvnThrottledClient$3.call(SvnThrottledClient.java:205)
              at com.cenqua.fisheye.svn.SvnThrottledClient$3.call(SvnThrottledClient.java:202)
              at java.util.concurrent.FutureTask.run(FutureTask.java:262)
              at com.cenqua.fisheye.svn.SvnTask.run(SvnTask.java:34)
              ... 3 more
      Caused by: org.tmatesoft.svn.core.SVNException: svn: E135003: Unable to make name for '/data/atlassian/fisheye/data/var/tmp/svn'
              at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
              at org.tmatesoft.svn.core.internal.wc.SVNFileUtil.createUniqueFile(SVNFileUtil.java:544)
              at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRemoteDiffEditor2.applyTextDelta(SvnNgRemoteDiffEditor2.java:315)
      

      which suggests the SVNKit failed to create temporary file after 99999 tries.

      There are two problems:

      • svnkit should use much less expensive way to find unique file
      • tmp files are not removed from tmp folder

      Workaround 0

      Use native SVN client as described in https://confluence.atlassian.com/display/FISHEYE/Native+Subversion+Client

      Workaround 1

      Stop Fisheye, remove FISHEYE_INST/var/tmp/svn folder and start Fisheye again - https://answers.atlassian.com/questions/279448/deleting-fisheye-temporary-files

      Workaround 2

      another workaround is to change the URL from file:// to be remote URL (eg: HTTP) to index the problematic changeset and switch back to file:// protocol later on

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              czawadka@atlassian.com Cezary Zawadka
              Reporter:
              czawadka@atlassian.com Cezary Zawadka
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - Not Specified
                  Not Specified
                  Logged:
                  Time Spent - 1.3h
                  1.3h