Add shutdown acceptance test for #122#123
Merged
Merged
Conversation
Adds tests/shutdown-acceptance.sh, the httpd-side acceptance criterion for the shutdown crash tracked in #122: after a request handler faults, P HTTPD must terminate the address space cleanly (no S33E, no repeated "__CRTGET CRT for TCB(...) was not found in PPA(...)", no SVC dump). The test provokes a faulting handler via the built-in /abend path (DC H'0' inside the worker request pipeline), issues P HTTPD, then asserts over the MVS console log. It reports FAIL when the crash signatures appear (the expected result on the current build), PASS on clean shutdown, and INCONCLUSIVE when no handler-fault marker (HTTPD062E or MVSMF99E) is present. Two correctness safeguards: the assertion is windowed to the byte range appended during the run so a pre-existing crash in an append-only console log cannot pin the result at FAIL; and proof-of-fault accepts HTTPD062E (core abend) or MVSMF99E (mvsMF CGI abend). Issuing P HTTPD and capturing the console log are pluggable adapters (manual operator default, cmd for CI), documented in tests/README.md. Refs #122
This was referenced Jul 22, 2026
Open
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.
Summary
Adds
tests/shutdown-acceptance.sh, the httpd-side acceptance criterion forthe shutdown crash in #122 (epic mvslovers/mvsmf#177, Workstream D).
After a request handler faults,
P HTTPDmust terminate the address spacecleanly: no
S33E, no repeated__CRTGET CRT for TCB(...) was not found in PPA(...), no SVC dump. The code fix lives in libc370 (worker DETACHgating + recovery-exit hardening); this test observes the symptom in httpd's
own address space.
How it works
ABEND_HITSrequests to/abend(
DC H'0'→ S0C1 inside the worker pipeline), enough to poison the pool.P HTTPD(pluggable adapter — manual operator by default,cmdfor CI).Verdict: FAIL when the crash signatures appear (the expected result on the
current pre-fix build), PASS on clean shutdown, INCONCLUSIVE when no
handler-fault marker is present.
Correctness safeguards
CONSOLE_LOGis typically an append-only Herculeshardcopy log that already contains prior
S33E/__CRTGETlines. Thescript records the byte offset before provoking and asserts only over bytes
appended during the run, so a stale crash cannot pin the result at FAIL.
HTTPD062E(core abend caught bythe worker
try(serve_client)) orMVSMF99E(mvsMF CGI abend caught byits inner ESTAE) — valid whether
ABEND_PATHis a core path or a CGI endpoint.Notes
relinks in. A PASS on an unfixed build is flagged as suspicious in the banner.
acceptance record until the libc370 side lands and this test is green.
Refs #122