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

can not disable the retries of Util.delete

    XMLWordPrintable

    Details

    • Similar Issues:
    • Released As:
      Jenkins 2.210

      Description

      https://github.com/jenkinsci/jenkins/blob/c8efc7c78e26f3aefad24ef4c8a161cb9a269ea3/core/src/main/java/hudson/Util.java#L1581-L1596 is confused.

       

      The properties is for "retries" which you should be able to disable with a count of zero. but you can not. but the comment implies it is just for the number of tries (not retries).

      However the code calls PathRemover.newFilteredRobustRemover(pathChecker, DELETION_MAX - 1, GC_AFTER_FAILED_DELETE, WAIT_BETWEEN_DELETION_RETRIES);]
      which ends up in https://github.com/jenkinsci/jenkins/blob/c8efc7c78e26f3aefad24ef4c8a161cb9a269ea3/core/src/main/java/jenkins/util/io/PathRemover.java#L63-L65  which is using a max retries.

      However if you run a test with the system property set to one.  then you do get one retry not one try.

      -DargLine=-Dhudson.Util.maxFileDeletionRetries=1

       

       Unable to delete 'C:\Users\IEUser\Desktop\oc-server\target\tmp\j h6725733765603761727'. Tried 2 time (of a maximum of 2) waiting 0.1 sec between attempts. 

      so the property does seem to be acting as a retry despite the code comment but you can not set it to zero one because...

      static int DELETION_MAX = Math.max(1, SystemProperties.getInteger(Util.class.getName() + ".maxFileDeletionRetries", 3)); 

       
      and the PathRemover]..

      return new PathRemover(new PausingGCRetryStrategy(Math.max(maxRetries, 1), gcAfterFailedRemove, waitBetweenRetries), pathChecker);

      which means it will always retry once, which is a PITA when trying to some timing bugs.

        Attachments

          Activity

          Hide
          teilo James Nord added a comment -

          marking as lts-candidate not because its bad for users but because it is bad for developers especially with the bump in jenkins-test-harness which fails tests if it can not clear up the temporary directory (which is painful to diagnose if retries kick in) (and more so if you run on windows)

          Show
          teilo James Nord added a comment - marking as lts-candidate not because its bad for users but because it is bad for developers especially with the bump in jenkins-test-harness which fails tests if it can not clear up the temporary directory (which is painful to diagnose if retries kick in) (and more so if you run on windows)

            People

            Assignee:
            teilo James Nord
            Reporter:
            teilo James Nord
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: