qa: fix bash-5.3 unbound-variable crash in the DM transient-retry path#1661
Conversation
…under set -u gloms the multibyte char's first byte into the varname ('max?: unbound variable'), killing the transient-retry path the first time it ever ran (adv_live3 beat-2 rc=124 timeout became a fatal beat instead of a fresh-session retry; repro: bash5.3 -c 'set -u; max=4; echo "$max?"')
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📜 Recent review details⏰ Context from checks skipped due to timeout. (14)
🧰 Additional context used📓 Path-based instructions (1)**/*📄 CodeRabbit inference engine (AGENTS.md)
Files:
🔇 Additional comments (1)
📝 WalkthroughPriority Level: P1 The Walkthrough
ChangesRetry logging
Estimated code review effort: 1 (Trivial) | ~2 minutes 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
evaOS review status: completedPR: #1661 - qa: fix bash-5.3 unbound-variable crash in the DM transient-retry path evaOS review completed for this PR head. Automation note: agents should wait for this comment to reach PR URL: #1661 Review URL: #1661 (review) |
There was a problem hiding this comment.
Walkthrough
PR: #1661 - qa: fix bash-5.3 unbound-variable crash in the DM transient-retry path
Head: bf4c572f35eb83b638324b2021c7f972566a6e55 into main. Review event: COMMENT.
Provider: GLM/Z.ai through ZCode (zcode-glm, zcode, model GLM-5.2).
Estimated review effort: 1/5 (~12 min)
Changed Files
| File | Status | Churn | Purpose | Risk |
|---|---|---|---|---|
qa/run_adventure.sh |
modified | +1/-1 | Changed file | Low |
Review Signal
No validated inline findings.
Dropped findings before posting: 0. High-severity findings: 0.
Risk Taxonomy
No finding categories.
Validation and Proof
1 required validation/proof recommendation(s) selected from changed files.
- required: Unity editor or Play Mode smoke - WorldOS repo profile implies Unity runtime risk. Proof: Unity editor smoke; Play Mode log; scene/prefab screenshot or recording.
Proof status: missing - 1 required validation/proof recommendation(s) missing from PR metadata.
Profile validation hints: Prefer correctness, persistence, CI, release, and regression findings over style-only feedback.
Profile proof expectations: Look for Unity editor, play-mode, fixture, or focused smoke evidence when runtime behavior changes.
Related Context
Related issues/PRs: #1656, #1657, #1659.
Suggested labels: none.
Suggested reviewers: none from current metadata.
Review Settings Preview
- Profile: assertive
- Enabled sections: Review summary (inline_review); Walkthrough (inline_review); Changed-files table (walkthrough); Effort estimate (walkthrough); Related issues/PRs (walkthrough); Suggested labels (suggestion_only); Review status comment (sticky_status)
- Path instructions:
Assets/**- Prioritize scene, prefab, save-state, asset-reference, and gameplay regressions. - Path instructions:
ProjectSettings/**- Treat build, platform, input, graphics, and release behavior changes as high risk. - Label suggestions: unity, gameplay, regression-hardening
- Reviewer suggestions: none
- Suggestion behavior: suggestions only; labels and reviewers are not auto-applied.
- Roadmap-only settings: auto-apply labels; auto-request reviewers; required status checks
Pre-merge checklist
- Inline comments target current RIGHT-side diff lines.
- No secret-like content survived into posted inline comments.
- REQUEST_CHANGES is only used when eligible P0/P1 findings survive validation.
- Required behavior proof is present or not applicable.
- Labels and reviewers are suggestions only; the bot did not auto-apply them.
adv_live3's beat-2 DM timeout (rc=124) was correctly classified TRANSIENT, but the retry-announce echo —
retry $((attempt+1))/$max…— crashed withmax�: unbound variablebefore the retry ran, turning a recoverable timeout into a fatal beat and ending the run.Root cause: homebrew bash 5.3.15 under
set -ugloms the first byte of the U+2026 ellipsis into the variable-name scan when it directly abuts$max(/bin/bash3.2 parses it fine). Red-first repro in the commit message. Fix: brace the expansion (${max}…). Repo-wide sweep for$varabutting a multibyte char found exactly this one instance.This unblocks the #1656/#1657/#1659 acceptance rerun (adv_live4).