-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ZTS fails to detect killed processes. #9003
Conversation
The tests failing is expected. Once #9001 is merged they should pass again. By the way, how can I see which tests failed, there is no obvious link on the "Details" page. |
Thanks for running this down. I'd wondered about this in the past but never investigated further. According the
You're going to want to click on the summary link for the ZTS results. This is a summarized version of the full log which lists which tests failed and which (if any) of those failures were unexpected. It will also include full extracts for those specific test failures. For example:
That makes sense. Once #9001 is merged will want to get this change rebased to verify all is well. |
@@ -199,11 +199,11 @@ function log_neg_expect | |||
print -u2 $($out) | |||
_printerror "$@" "unexpectedly exited $status (File not found)" | |||
# bus error - core dump |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: let's make it explicit where 263 (and 267) come from in the comments. Perhaps something like this.
# bus error - core dump (256+signal, SIGBUS=7)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do.
Maybe this was run by Thanks for the link! I will address your review and rebase once #9001 is merged. |
#9001 was merged so feel free to rebase this when convenient. |
Squashed and rebased. Let's see how the tests go. |
For the archives, ksh was the de-facto shell at Sun at the time. bash was not guaranteed to be available and sh is simply too limited, left there for backwards compatibility. That said, it was well known that 256 + errno is expected, thanks for tracking this down. |
log_neg_expect was using the wrong exit status to detect if a process got killed by SIGSEGV or SIGBUS, resulting in false positives. Signed-off-by: Attila Fülöp <[email protected]>
Sorry, I've to force push again to fix the commit message. There is a 73 characters wide line and a typo. |
Codecov Report
@@ Coverage Diff @@
## master #9003 +/- ##
==========================================
+ Coverage 78.5% 78.72% +0.21%
==========================================
Files 401 401
Lines 120145 120145
==========================================
+ Hits 94322 94580 +258
+ Misses 25823 25565 -258
Continue to review full report at Codecov.
|
The test run encountered a surprising number of of rare test cases failures (4 total, one per bot). While unlikely, we have seen each of the failures at least once before. I've resubmitted those builds to repeat the testing. |
With the exception of the kernel.org build failure, which I think is unrelated, everything else seems to be fine now. |
@AttilaFueloep looks good, I'll get this merged. The kernel.org failures are due to the 5.3 merge window now being open, so we'll need to see what's changed and sort that out. |
log_neg_expect was using the wrong exit status to detect if a process got killed by SIGSEGV or SIGBUS, resulting in false positives. Reviewed-by: loli10K <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes openzfs#9003
log_neg_expect was using the wrong exit status to detect if a process got killed by SIGSEGV or SIGBUS, resulting in false positives. Reviewed-by: loli10K <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes openzfs#9003
log_neg_expect was using the wrong exit status to detect if a process got killed by SIGSEGV or SIGBUS, resulting in false positives. Reviewed-by: loli10K <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes openzfs#9003
log_neg_expect was using the wrong exit status to detect if a process got killed by SIGSEGV or SIGBUS, resulting in false positives. Reviewed-by: loli10K <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes openzfs#9003
log_neg_expect was using the wrong exit status to detect if a process got killed by SIGSEGV or SIGBUS, resulting in false positives. Reviewed-by: loli10K <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes openzfs#9003
log_neg_expect was using the wrong exit status to detect if a process got killed by SIGSEGV or SIGBUS, resulting in false positives. Reviewed-by: loli10K <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes openzfs#9003
log_neg_expect was using the wrong exit status to detect if a process got killed by SIGSEGV or SIGBUS, resulting in false positives. Reviewed-by: loli10K <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes openzfs#9003
log_neg_expect was using the wrong exit status to detect if a process got killed by SIGSEGV or SIGBUS, resulting in false positives. Reviewed-by: loli10K <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes #9003
Motivation and Context
If a process gets killed by a signal ksh(1) returns
256+signum
.log_mustnot
was expecting a return value of128+signum
, failing to detect killed processes. This resulted in test passing where they should not.Description
How Has This Been Tested?
Verified that tests that cause segfaults passed without this change and failed, as they should, with this change.
Types of changes
Checklist:
Signed-off-by
.