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

Jenkins Disk usage slowdown completely jobs since don't follow symlinks

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • disk-usage-plugin
    • Linux master, OSX Slave, Disk Usage 0.23, Jenkins 1.549, Java 6

      We use workspace with large number of files, since the last update of the Jenkins Disk Usage plugin our build post processing is taking ages (4 times slower). We notice the slowdown only on OSX slaves.

      We suspect this feature in the plugin : Don't follow symlinks

      Here the thread dump when the job completed but the slave is still busy with the plugin :

      "pool-1-thread-101 for channel" Id=128 Group=main BLOCKED on hudson.remoting.RemoteClassLoader@fda5bfa owned by "pool-1-thread-767 for channel" Id=2764
      at java.lang.ClassLoader.loadClass(ClassLoader.java:291)

      • blocked on hudson.remoting.RemoteClassLoader@fda5bfa
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at hudson.plugins.disk_usage.DiskUsageUtil.isSymlink(DiskUsageUtil.java:175)
        at hudson.plugins.disk_usage.DiskUsageUtil.getFileSize(DiskUsageUtil.java:201)
        at hudson.plugins.disk_usage.DiskUsageUtil.getFileSize(DiskUsageUtil.java:201)
        at hudson.plugins.disk_usage.DiskUsageUtil.getFileSize(DiskUsageUtil.java:201)
        at hudson.plugins.disk_usage.DiskUsageUtil.getFileSize(DiskUsageUtil.java:201)
        at hudson.plugins.disk_usage.DiskUsageUtil.getFileSize(DiskUsageUtil.java:201)
        at hudson.plugins.disk_usage.DiskUsageUtil.getFileSize(DiskUsageUtil.java:201)
        at hudson.plugins.disk_usage.DiskUsageUtil.getFileSize(DiskUsageUtil.java:201)
        at hudson.plugins.disk_usage.DiskUsageUtil.getFileSize(DiskUsageUtil.java:201)
        at hudson.plugins.disk_usage.DiskUsageUtil.getFileSize(DiskUsageUtil.java:201)
        at hudson.plugins.disk_usage.DiskUsageUtil$DiskUsageCallable.call(DiskUsageUtil.java:399)
        at hudson.plugins.disk_usage.DiskUsageUtil$DiskUsageCallable.call(DiskUsageUtil.java:380)
        at hudson.remoting.UserRequest.perform(UserRequest.java:118)
        at hudson.remoting.UserRequest.perform(UserRequest.java:48)
        at hudson.remoting.Request$2.run(Request.java:328)
        at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:695)

      Number of locked synchronizers = 1

      • java.util.concurrent.locks.ReentrantLock$NonfairSync@65962a71

      Downgrading the plugin to 0.20 fixed our problem

            lvotypkova Lucie Votypkova
            eboudrant Emmanuel Boudrant
            Votes:
            4 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: