Skip to content

Local-ladder green: BSD mktemp soak fix (CI-mac-gating) + 0h port-poll tolerance + Alpine curl - #1285

Merged
DeusData merged 3 commits into
mainfrom
feat/local-remote-parity
Jul 27, 2026
Merged

Local-ladder green: BSD mktemp soak fix (CI-mac-gating) + 0h port-poll tolerance + Alpine curl#1285
DeusData merged 3 commits into
mainfrom
feat/local-remote-parity

Conversation

@DeusData

Copy link
Copy Markdown
Owner

Three harness fixes from driving the full local ladder to green on merged main. The mktemp one is REMOTE-gating: CI's macos soak jobs run two legs per job on BSD mktemp and collide on the near-literal leftover exactly like the local repro. The other two are local-venue-only (Windows/Defender port-publish race in the 0h self-test; curl missing from the Alpine smoke image). Local ladder is fully green with these: mac 6621/0 + TSan + smoke + artifact + soak×2 · linux test/perf/TSan/smoke/portable/artifact/glibc-floor/soak×2 · windows test-par 6681/0 solo + guards + smoke-install + smoke-artifact + soak×2.

DeusData added 3 commits July 27, 2026 03:32
BSD mktemp substitutes only TRAILING X's, so the template
cbm-soak-leg-XXXXXX.log creates a near-literal file on macOS and the
second leg of the same job collides with the first leg's leftover
('File exists'). First runs mask it — which is why the quick leg
passed and query-leak failed locally, and why CI's macos soak jobs
(BSD mktemp, two legs per job) would fail the same way.

Drop the suffix; the path is only a log handle.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
…lf-test

On Windows the fixture server's atomic port publish (os.replace) — or
a first-touch AV scan of the fresh file, with Defender ACTIVE on the
VM — briefly denies the read: is_file() is true, read_text() raises
PermissionError, and the poll loop crashed the whole contract with a
bare traceback (observed on the VM once the 0e/0h needle fixes let
the chain reach this self-test at all). Treat an unreadable-yet port
file as not-ready and keep polling inside the existing deadline.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
The unified smoke-local.sh readiness-polls the fixture server with
curl; the Alpine image never had it, so every poll iteration failed
command-not-found and the portable smoke leg reported 'fixture server
did not serve' with a perfectly healthy server. Local-only image (CI
portable smokes run on ubuntu runners, curl preinstalled).

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
@DeusData
DeusData merged commit d0e1ac5 into main Jul 27, 2026
9 checks 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