-
Bug
-
Resolution: Fixed
-
Minor
-
-
Jenkins 2.210
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.
[JENKINS-60351] can not disable the retries of Util.delete
Description |
Original:
[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);}}|[https://github.com/jenkinsci/jenkins/blob/c8efc7c78e26f3aefad24ef4c8a161cb9a269ea3/core/src/main/java/hudson/Util.java#L1635]] 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 {noformat} 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. {noformat} 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... {noformat} static int DELETION_MAX = Math.max(1, SystemProperties.getInteger(Util.class.getName() + ".maxFileDeletionRetries", 3)); {noformat} |
New:
[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);}}|#L1635]] 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 {noformat} 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. {noformat} 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... {noformat} static int DELETION_MAX = Math.max(1, SystemProperties.getInteger(Util.class.getName() + ".maxFileDeletionRetries", 3)); {noformat} and the [PathRemover|[https://github.com/jenkinsci/jenkins/blob/c8efc7c78e26f3aefad24ef4c8a161cb9a269ea3/core/src/main/java/jenkins/util/io/PathRemover.java#L64]].. {noformat} return new PathRemover(new PausingGCRetryStrategy(Math.max(maxRetries, 1), gcAfterFailedRemove, waitBetweenRetries), pathChecker);{noformat} |
Description |
Original:
[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);}}|#L1635]] 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 {noformat} 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. {noformat} 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... {noformat} static int DELETION_MAX = Math.max(1, SystemProperties.getInteger(Util.class.getName() + ".maxFileDeletionRetries", 3)); {noformat} and the [PathRemover|[https://github.com/jenkinsci/jenkins/blob/c8efc7c78e26f3aefad24ef4c8a161cb9a269ea3/core/src/main/java/jenkins/util/io/PathRemover.java#L64]].. {noformat} return new PathRemover(new PausingGCRetryStrategy(Math.max(maxRetries, 1), gcAfterFailedRemove, waitBetweenRetries), pathChecker);{noformat} |
New:
[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);}}|#L1635]] 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 {noformat} 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. {noformat} 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... {noformat} static int DELETION_MAX = Math.max(1, SystemProperties.getInteger(Util.class.getName() + ".maxFileDeletionRetries", 3)); {noformat} and the [PathRemover|#L64]].. {noformat} return new PathRemover(new PausingGCRetryStrategy(Math.max(maxRetries, 1), gcAfterFailedRemove, waitBetweenRetries), pathChecker);{noformat} which means it will always retry once, which is a PITA when trying to some timing bugs. |
Assignee | New: James Nord [ teilo ] |
Status | Original: Open [ 1 ] | New: In Progress [ 3 ] |
Labels | New: lts-candidate |
Resolution | New: Fixed [ 1 ] | |
Status | Original: In Progress [ 3 ] | New: Resolved [ 5 ] |
Released As | New: Jenkins 2.210 |
Labels | Original: lts-candidate | New: 2.204.2-fixed |
Assignee | Original: James Nord [ teilo ] |