Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-21780

DirectoryBrowserSupport.buildChildPaths does quadratic number of calls to check whether entries are directories

XMLWordPrintable

      From a thread dump when the workspace browser was timing out trying to show me a directory:

      "Handling GET /job/.../ws/test/target/surefire-reports/ : ... / waiting for hudson.remoting.Channel@..." Id=... Group=main TIMED_WAITING on hudson.remoting.UserRequest@...
      	at java.lang.Object.wait(Native Method)
      	-  waiting on hudson.remoting.UserRequest@280e3332
      	at hudson.remoting.Request.call(Request.java:146)
      	at hudson.remoting.Channel.call(Channel.java:714)
      	at hudson.FilePath.act(FilePath.java:905)
      	at hudson.FilePath.act(FilePath.java:889)
      	at hudson.FilePath.isDirectory(FilePath.java:1389)
      	at jenkins.util.VirtualFile$2.isDirectory(VirtualFile.java:266)
      	at hudson.model.DirectoryBrowserSupport$FileComparator.dirRank(DirectoryBrowserSupport.java:443)
      	at hudson.model.DirectoryBrowserSupport$FileComparator.compare(DirectoryBrowserSupport.java:435)
      	at hudson.model.DirectoryBrowserSupport$FileComparator.compare(DirectoryBrowserSupport.java:426)
      	at java.util.TimSort.mergeHi(Unknown Source)
      	at java.util.TimSort.mergeAt(Unknown Source)
      	at java.util.TimSort.mergeCollapse(Unknown Source)
      	at java.util.TimSort.sort(Unknown Source)
      	at java.util.TimSort.sort(Unknown Source)
      	at java.util.Arrays.sort(Unknown Source)
      	at hudson.model.DirectoryBrowserSupport.buildChildPaths(DirectoryBrowserSupport.java:460)
      	at hudson.model.DirectoryBrowserSupport.serveFile(DirectoryBrowserSupport.java:254)
      	at hudson.model.DirectoryBrowserSupport.generateResponse(DirectoryBrowserSupport.java:123)
      

            jglick Jesse Glick
            jglick Jesse Glick
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: