[JENKINS-23152] More robust handling of build number collisions #7523
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See JENKINS-23152 as defended against originally in #1379. If
nextBuildNumber
is stale or the in-memory build number list fails to match what is on disk in some other way, you can get errors likewhich prevent a new build from being run at all. This patch at least retries with the newly updated
nextBuildNumber
until it finds an open slot.#2439 also added some robustness during
onLoad
, which cannot be used reliably here since that presumesmaxNumberOnDisk
is freshly computed from actually inspecting thebuilds
directory.Testing done
Manually decrementing
nextBuildNumber
on disk. Not sure this is worth an automated test.Proposed changelog entries
Maintainer checklist
Before the changes are marked as
ready-for-merge
:upgrade-guide-needed
label is set and there is a Proposed upgrade guidelines section in the pull request title (see example).lts-candidate
to be considered (see query).