Skip to content

Assert normal address-space termination in the shutdown acceptance test#124

Merged
mgrossmann merged 1 commit into
mainfrom
issue-122-assert-normal-termination
Jul 23, 2026
Merged

Assert normal address-space termination in the shutdown acceptance test#124
mgrossmann merged 1 commit into
mainfrom
issue-122-assert-normal-termination

Conversation

@mgrossmann

@mgrossmann mgrossmann commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Extends tests/shutdown-acceptance.sh (added in #123) to assert that the HTTPD
address space terminates normally after P HTTPD — not merely that the
in-flight crash signatures are absent.

Why

Before the 2026-07-23 libc370 recovery-exit relink (libc370 PR #10, libc370#9),
the crash reproduced as S33E + __CRTGET spam. After the relink those are
gone — but the address space still ends abnormally: an mvsMF poll worker that
ignores quiesce (mvsmf#179) leaves a live subtask, and P HTTPD drives
IEF450I ... ABEND SA03. The pre-existing assertions (S33E / __CRTGET / SVC
dump) pass that run vacuously.

Change

  • FAIL on IEF450I ... ABEND and $HASP310 ... TERMINATED AT END OF MEMORY
    (SVC-dump / IEA911E was already covered by the svcdump group, now called
    out explicitly).
  • Window-completeness gate: confirm the address-space end was captured
    ($HASP395 ... ENDED or IEF404I, scoped to JOBNAME) before PASS. These
    records appear on clean and abnormal ends, so they gate log-completeness, not
    health — the discriminators are IEF450I / $HASP310 / SVC dump.
  • New JOBNAME env var (default HTTPD).
  • HTTPD002I / HTTPD060I documented as diagnostic-only, with a CAUTION on a
    PASS that shows none.
  • The __CRTGET assertion is unchanged (zero-tolerance) — correct for the
    termination path this test drives; see the note on Shutdown crash: S33E on worker DETACH + recovery ESTAE runs C runtime under a torn-down CRT #122.

Expected state: RED against the current build

With these assertions the test is RED on the current post-relink build,
because of the SA03. That is the correct state: the test now has a genuine
failing condition tied to a specific open issue (mvsmf#179), rather than passing
vacuously. When mvsmf#179 is fixed and this goes green, that is a real signal
that the address space terminates cleanly.

Verification

Exercised against synthetic console logs reproducing the verbatim message lines
from the 11.02 (S33E), 11.35 (SA03), and 2026-07-22 (EOM + IEA911E) runs,
plus a clean-shutdown and a truncated-log case: FAIL on the two crash runs, PASS
on clean, INCONCLUSIVE on the truncated capture, and PASS (via IEF404I alone)
when JES omits $HASP395. The windowed assertion still excludes pre-existing
crash lines. sh -n clean.

Follow-up

The default abend provocation drives the recovery-drain path, not a worker
parked in a long poll, so it does not exercise the SA03 / mvsmf#179 scenario.
A PROVOKE=longpoll mode that does is proposed separately in #126.

Refs #122

The shutdown acceptance test asserted only on the in-flight crash signatures
(S33E, repeated __CRTGET spam, SVC-dump markers). After the 2026-07-23 libc370
recovery-exit relink those are gone, yet the address space still ends
abnormally: an mvsMF poll worker that ignores quiesce leaves a live subtask,
and P HTTPD drives IEF450I ... ABEND SA03. The old assertions pass that run
vacuously.

Add the missing address-space-end assertions:

- FAIL on IEF450I ... ABEND and $HASP310 ... TERMINATED AT END OF MEMORY.
  SVC-dump (IEA911E) was already covered by the svcdump group; note it there.
- Confirm the address-space end was captured in the window ($HASP395 ... ENDED
  or IEF404I, scoped to JOBNAME) before reporting PASS, so a truncated log is
  not mistaken for a clean shutdown. Those two records appear on clean and
  abnormal ends alike, so they gate log-completeness, not health.
- Add JOBNAME (default HTTPD) to scope the end-capture markers.
- Document HTTPD002I/HTTPD060I worker-shutdown WTOs as diagnostic only, with a
  CAUTION when a PASS shows none.

The __CRTGET assertion is unchanged (zero-tolerance): correct for the
termination path this test drives.

Refs #122
@mgrossmann
mgrossmann merged commit 00c4fb0 into main Jul 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant