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

WorkspaceCleanupThread does not handle folders

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      Only considers direct subdirectories of jobs, and later calls getItem which can only work for top-level jobs.

      Also process(Jenkins) is only looking for $JENKINS_HOME/jobs/*/workspace/ for builds run on master, which is deprecated—new installations use $JENKINS_HOME/workspace/*/. Ideally would handle any workspace location pattern, since this is configurable.

        Attachments

          Issue Links

            Activity

            Hide
            jglick Jesse Glick added a comment -

            Marking an LTS candidate since the current code not only fails to consider jobs in folders individually; it also tends to delete the workspaces of all jobs inside any folder when the timestamp on the top-level directory is at least a month old, even when the jobs are actively being built on that node. The only workaround for people using folders is to use -Dhudson.model.WorkspaceCleanupThread.disabled to turn this feature off entirely.

            Show
            jglick Jesse Glick added a comment - Marking an LTS candidate since the current code not only fails to consider jobs in folders individually; it also tends to delete the workspaces of all jobs inside any folder when the timestamp on the top-level directory is at least a month old, even when the jobs are actively being built on that node. The only workaround for people using folders is to use -Dhudson.model.WorkspaceCleanupThread.disabled to turn this feature off entirely.
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Jesse Glick
            Path:
            changelog.html
            core/src/main/java/hudson/model/WorkspaceCleanupThread.java
            test/src/test/java/hudson/model/WorkspaceCleanupThreadTest.java
            http://jenkins-ci.org/commit/jenkins/cd526e99e63ae362f2d1ce1a04c3c68a38032a5c
            Log:
            [FIXED JENKINS-21023] Rewrote WorkspaceCleanupThread to determine where workspaces for known items should be, rather than looking for directories that look like they might be workspaces.
            One key advantage is that this correctly handles the new default workspace location on the master.
            Another is that this allows folders to be correctly skipped, and jobs in folders to be correctly deleted.
            A subtler advantage would be handling of configured nondefault workspace locations, and compatibility with WorkspaceLocator.
            (Orphaned workspaces from deleted jobs are not removed, but these were not removed before either.)

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: changelog.html core/src/main/java/hudson/model/WorkspaceCleanupThread.java test/src/test/java/hudson/model/WorkspaceCleanupThreadTest.java http://jenkins-ci.org/commit/jenkins/cd526e99e63ae362f2d1ce1a04c3c68a38032a5c Log: [FIXED JENKINS-21023] Rewrote WorkspaceCleanupThread to determine where workspaces for known items should be, rather than looking for directories that look like they might be workspaces. One key advantage is that this correctly handles the new default workspace location on the master. Another is that this allows folders to be correctly skipped, and jobs in folders to be correctly deleted. A subtler advantage would be handling of configured nondefault workspace locations, and compatibility with WorkspaceLocator. (Orphaned workspaces from deleted jobs are not removed, but these were not removed before either.)
            Hide
            dogfood dogfood added a comment -

            Integrated in jenkins_main_trunk #3192
            [FIXED JENKINS-21023] Rewrote WorkspaceCleanupThread to determine where workspaces for known items should be, rather than looking for directories that look like they might be workspaces. (Revision cd526e99e63ae362f2d1ce1a04c3c68a38032a5c)

            Result = SUCCESS
            Jesse Glick : cd526e99e63ae362f2d1ce1a04c3c68a38032a5c
            Files :

            • changelog.html
            • test/src/test/java/hudson/model/WorkspaceCleanupThreadTest.java
            • core/src/main/java/hudson/model/WorkspaceCleanupThread.java
            Show
            dogfood dogfood added a comment - Integrated in jenkins_main_trunk #3192 [FIXED JENKINS-21023] Rewrote WorkspaceCleanupThread to determine where workspaces for known items should be, rather than looking for directories that look like they might be workspaces. (Revision cd526e99e63ae362f2d1ce1a04c3c68a38032a5c) Result = SUCCESS Jesse Glick : cd526e99e63ae362f2d1ce1a04c3c68a38032a5c Files : changelog.html test/src/test/java/hudson/model/WorkspaceCleanupThreadTest.java core/src/main/java/hudson/model/WorkspaceCleanupThread.java
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Jesse Glick
            Path:
            core/src/main/java/hudson/model/WorkspaceCleanupThread.java
            test/src/test/java/hudson/model/WorkspaceCleanupThreadTest.java
            http://jenkins-ci.org/commit/jenkins/6b474c279dcc473c063a84f29d37b0123a4bc192
            Log:
            [FIXED JENKINS-21023] Rewrote WorkspaceCleanupThread to determine where workspaces for known items should be, rather than looking for directories that look like they might be workspaces.
            One key advantage is that this correctly handles the new default workspace location on the master.
            Another is that this allows folders to be correctly skipped, and jobs in folders to be correctly deleted.
            A subtler advantage would be handling of configured nondefault workspace locations, and compatibility with WorkspaceLocator.
            (Orphaned workspaces from deleted jobs are not removed, but these were not removed before either.)
            (cherry picked from commit cd526e99e63ae362f2d1ce1a04c3c68a38032a5c)

            Conflicts:
            changelog.html

            Compare: https://github.com/jenkinsci/jenkins/compare/93500aeaa5e8...6b474c279dcc

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/model/WorkspaceCleanupThread.java test/src/test/java/hudson/model/WorkspaceCleanupThreadTest.java http://jenkins-ci.org/commit/jenkins/6b474c279dcc473c063a84f29d37b0123a4bc192 Log: [FIXED JENKINS-21023] Rewrote WorkspaceCleanupThread to determine where workspaces for known items should be, rather than looking for directories that look like they might be workspaces. One key advantage is that this correctly handles the new default workspace location on the master. Another is that this allows folders to be correctly skipped, and jobs in folders to be correctly deleted. A subtler advantage would be handling of configured nondefault workspace locations, and compatibility with WorkspaceLocator. (Orphaned workspaces from deleted jobs are not removed, but these were not removed before either.) (cherry picked from commit cd526e99e63ae362f2d1ce1a04c3c68a38032a5c) Conflicts: changelog.html Compare: https://github.com/jenkinsci/jenkins/compare/93500aeaa5e8...6b474c279dcc

              People

              • Assignee:
                jglick Jesse Glick
                Reporter:
                jglick Jesse Glick
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: