Repository navigation
Conversation
…and the run xcat-dep-build-el8-x86_64 #107 failed on perl-Digest-SHA1 alone, with ten of eleven packages passing beside it in the same run. Its build.log shows `make test` reporting `Result: PASS` and %doc ending `+ exit 0`, and the next line is `Child return code was: 255` with no rpm error: the Provides/Requires pass never ran, and systemd recorded the container as `Deactivated successfully`. The same srpm, with the same defines, alone on the same host, builds all four rpms and exits 0. That one package failed the cell, the el family and the whole of xcat-ci #146. run_mock in mockbuild-perl-packages.pl retried exit 30 and nothing else, so a chroot that died without failing a build had no second attempt. xcat-core's buildrpms.pl has carried sh_retry for this class since the systemd-nspawn ENOMEDIUM race; the perl builder is the copy that never got it. mock_exit_is_transient in MockBuildUtils.pm names the exit codes that mean the RUN died rather than the BUILD failed -- 30 for the package manager, 255 for a chroot with no rpm error behind it -- and run_mock gives those another attempt after a backoff. Exit 1 is the build itself and is not retried, because three attempts at a broken spec is three times the wait for the same answer; an unlisted code is not retried either. mock_transient_exit_is_retried.t holds both halves down. Dropping 255 from the list fails the assertion the test exists for, and retrying every non-zero exit fails the two that keep a real build failure fast. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
One conflict, the MockBuildUtils export list: master gained packaged_path with xcat-dep/xcat2#95 and this branch adds mock_exit_is_transient and mock_attempts. Resolved as the union. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
xcat-dep-build-el8-x86_64 #107 failed on
perl-Digest-SHA1alone, with ten of eleven packages passing beside it in the same run. Its build.log showsmake testreportingResult: PASSand%docending+ exit 0, and the next line isChild return code was: 255with no rpm error at all: the Provides/Requires pass never ran, and systemd recorded the container asDeactivated successfully. The same srpm, with the same defines, alone on the same host, builds all four rpms and exits 0.run_mockinmockbuild-perl-packages.plretried exit 30 and nothing else, so a chroot that died without failing a build had no second attempt. One package then failed the cell and the whole EL family of the run.buildrpms.plin xcat-core has carriedsh_retryfor this class since the systemd-nspawn ENOMEDIUM race; the perl builder is the copy that never got it.mock_exit_is_transientnames the exit codes that mean the RUN died rather than the BUILD failed -- 30 for the package manager, 255 for a chroot with no rpm error behind it -- andrun_mockgives those another attempt after a backoff. Exit 1 is the build itself and is not retried, because three attempts at a broken spec is three times the wait for the same answer; an unlisted code is not retried either.t/mock_transient_exit_is_retried.tholds both halves down. Dropping 255 from the list fails the assertion the test exists for; retrying every non-zero exit fails the two assertions that keep a real build failure fast.prove -j4 t/passes 32 files and 1331 tests with upstream master merged in.