Repository navigation
Conversation
… on an infra exit The gate's mxbuild and a live `mxcli run --local --watch` both write deployment/. In a field migration project (12 modules) 17 of 27 failed gates were "gate could not run" (mxbuild exit 1, no CE code), against 0 of 22 in watcher-free copies. The watcher of this project is stopped for the gate and resumed after (and in the EXIT trap). An exit 1 or 3 with no CE code and no errors file is retried once and logged as "retry after infra exit". A final failure still takes the #424 rollback. Refs #441, #442, #171, #285, #424 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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.
Problem
The exec gate's mxbuild and a live
mxcli run --local --watchon the same project both writedeployment/. In a field migration project (12 modules), 17 of 27 failed gates were "gate could not run" (mxbuild exit 1 or 3, no CE code, no errors file), against 0 of 22 gates run in watcher-free copies of the same project. Each cost 2 to 4 minutes of rerun plus blocked guards.Refs #441, #444, #171, #285, #424
Change
project-bin/_common.sh:mxtk_gate_mxbuildwrapsmxtk_mxbuild_error_count. It stops this project's watcher (SIGSTOP, found bypgreponrun --local --watch, matched by project path or cwd) for the length of the gate and continues it (SIGCONT) after. mxbuild has no option to move the deploy target's output out ofdeployment/, so a separate output dir is not available; pausing was the simplest robust choice. Only the watcher process is stopped, not its runtime.project-bin/exec.sh: the three gate call sites (baseline, gate, whose-error rebuild) use the wrapper; the EXIT trap resumes the watcher; the fix(exec): roll back the model write when mxbuild crashes #424 rollback is untouched and applies to the final failure.Test
New
tests/wave2/test-exec-gate-retry.sh(stub mxcli, mxbuild, java; no real mxbuild): A) infra exit then clean: retried, kept, row and output carry the note; B) infra exit twice: retried once, rolled back, model byte-identical; C) a real CE error list is not retried; D) a live stub watcher is in state T during both mxbuild runs and running afterwards. 14 of 14 pass. Existingtest-exec-crash-rollback.sh(13) andtest-exec-lock-watch.sh(84) pass.check-pr-discipline.shandcheck-portability.sh(changed files) are clean.test-common-windows.shhas 2 ELF failures that are identical on unmodified master.Risk
kill -CONT <pid>.fix/gate-full-log); a one-line rebase conflict is possible.🤖 Generated with Claude Code