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

Better progress feedback during workspace deletion

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Minor Minor
    • core
    • None

      If you have a big workspace (ours tend to be hundreds of megs with tens of thousands of files), and select Wipe Out Workspace and click Yes, the web browser looks to hang. Of course Hudson is busily deleting files, but there is no way to see how far it has gotten. Ten minutes later or so the replacement page appears to load. This looks more like an unresponsive server than a task in progress.

      Would be better for the new page to load to (HTML) completion, but then show a spinning cursor or similar progress indication, just like we do for /console. This page could periodically refresh itself and show the contents of the workspace shrinking. (In our case, using Mercurial, it would be enough to show top-level directories disappearing, but people using Subversion and not entering "." in the checkout folder field will have just one top-level directory, with all the contents beneath that.)

      Best would of course be a numeric progress estimation, but I think it may not be feasible to calculate this: deeply skewed directory trees make it impossible to accurately estimate how much you have already deleted without first doing a complete traversal of the workspace, which is expensive in its own right. I guess you could then do a DFS deletion in reverse traversal order to make the best use of disk caches: the last files to be found in the prescan will still be in cache so will be quicker to delete, and you will pay more to delete the earlier files which were pushed out. You can also assume as a heuristic that all subfolders of a given folder will take an equal amount of time to delete, which gives a jumpy progress bar that in some cases will be very misleading, but perhaps better than nothing.

      Workaround is to open Workspace in a separate browser tab and manually refresh.

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

              Created:
              Updated: