docs(buglog): bug-1909 test-version-startup-consistency.sh fails on any dirty tree
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f70652981a
commit
353b16dd4e
2 changed files with 79 additions and 0 deletions
|
|
@ -17009,6 +17009,30 @@
|
|||
"8b7173bb"
|
||||
],
|
||||
"record": ".wolf/bugs/bug-1908.md"
|
||||
},
|
||||
{
|
||||
"id": "bug-1909",
|
||||
"status": "open",
|
||||
"status_updated": "2026-10-03",
|
||||
"status_note": "newly logged",
|
||||
"component": "tooling",
|
||||
"severity": "wrong-result",
|
||||
"timestamp": "2026-10-03T08:09:49Z",
|
||||
"last_seen": "2026-10-03T08:09:49Z",
|
||||
"occurrences": 1,
|
||||
"error_message": "test-version-startup-consistency.sh scheduler check fails on any dirty tree (fingerprint vs -dirty)\n\n**Observed:**\n```\nFAIL [scheduler]: commit id MISMATCH ('ac7a4385-f4637557' vs 'ac7a4385-dirty')\n```\n`src/tools/test-version-startup-consistency.sh` compares the scheduler's `--version` commit id with the one in its startup log line. On a dirty working tree `--version` reports a content fingerprint (`<sha>-<fingerprint>`) while the startup log keeps `<sha>-dirty`, so the scheduler check fails.\n\n**Expected:** the script passes on a dirty tree. The dirty-fingerprint feature keeps the startup log at `-dirty` on purpose (its own regression script, `test-dirty-fingerprint-startup-log-unchanged.sh`, asserts that), so the consistency check should compare the two forms accordingly (e.g. compare the base sha, or accept `-dirty` in the log when `--version` carries a fingerprint).\n**Impact:** the script can only pass from a clean tree; any developer machine with uncommitted changes (here `.wolf/`, `.claude/`, `data/`) sees a false failure. Test-only; product binaries behave as designed.\n**Found by:** spec task (controller-peers-env-fallback task 5.2)",
|
||||
"file": "src/tools/test-version-startup-consistency.sh",
|
||||
"root_cause": "TODO: required for fixed/partial",
|
||||
"fix": "TODO: required for fixed/partial\n\nVerification:\n- Test: TODO: name + file; RED before the fix, GREEN after\n- Suites: TODO: suite results and build profile\n- Live: TODO: soak/deploy run, or n/a and why",
|
||||
"tags": [
|
||||
"test-script",
|
||||
"version",
|
||||
"dirty-fingerprint",
|
||||
"scheduler"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"fix_commits": [],
|
||||
"record": ".wolf/bugs/bug-1909.md"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
55
.wolf/bugs/bug-1909.md
Normal file
55
.wolf/bugs/bug-1909.md
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
---
|
||||
id: "bug-1909"
|
||||
status: "open"
|
||||
status_updated: "2026-10-03"
|
||||
status_note: "newly logged"
|
||||
component: "tooling"
|
||||
severity: "wrong-result"
|
||||
timestamp: "2026-10-03T08:09:49Z"
|
||||
last_seen: "2026-10-03T08:09:49Z"
|
||||
occurrences: 1
|
||||
files: ["src/tools/test-version-startup-consistency.sh"]
|
||||
tags: ["test-script", "version", "dirty-fingerprint", "scheduler"]
|
||||
related: []
|
||||
---
|
||||
|
||||
# bug-1909: test-version-startup-consistency.sh scheduler check fails on any dirty tree (fingerprint vs -dirty)
|
||||
|
||||
## Description
|
||||
**Observed:**
|
||||
```
|
||||
FAIL [scheduler]: commit id MISMATCH ('ac7a4385-f4637557' vs 'ac7a4385-dirty')
|
||||
```
|
||||
`src/tools/test-version-startup-consistency.sh` compares the scheduler's `--version` commit id with the one in its startup log line. On a dirty working tree `--version` reports a content fingerprint (`<sha>-<fingerprint>`) while the startup log keeps `<sha>-dirty`, so the scheduler check fails.
|
||||
|
||||
**Expected:** the script passes on a dirty tree. The dirty-fingerprint feature keeps the startup log at `-dirty` on purpose (its own regression script, `test-dirty-fingerprint-startup-log-unchanged.sh`, asserts that), so the consistency check should compare the two forms accordingly (e.g. compare the base sha, or accept `-dirty` in the log when `--version` carries a fingerprint).
|
||||
**Impact:** the script can only pass from a clean tree; any developer machine with uncommitted changes (here `.wolf/`, `.claude/`, `data/`) sees a false failure. Test-only; product binaries behave as designed.
|
||||
**Found by:** spec task (controller-peers-env-fallback task 5.2)
|
||||
|
||||
## Environment
|
||||
- OS: no /etc/os-release; Docker container; NixOS kernel; kernel Linux 6.18.33 x86_64
|
||||
- libc: glibc 2.42-47 (interpreter /nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/ld-linux-x86-64.so.2)
|
||||
- Toolchain: gcc (GCC) 15.2.0, meson 1.9.1
|
||||
- Build: asan (xce.build)
|
||||
- Code: scheduler-framework @ ac7a4385-dirty
|
||||
- Deployment: n/a — the script builds and runs the scheduler locally, no cluster
|
||||
|
||||
## Reproduction
|
||||
1. From a working tree with any uncommitted change (e.g. `echo x >> README.md` in a scratch worktree at HEAD), run `bash src/tools/test-version-startup-consistency.sh`.
|
||||
2. Observe `FAIL [scheduler]: commit id MISMATCH ('<sha>-<fingerprint>' vs '<sha>-dirty')`.
|
||||
- Frequency: deterministic on any dirty tree (reproduced 2026-10-03 with HEAD's unmodified script in a scratch worktree with one README edit); passes on a clean tree.
|
||||
- Evidence: not kept (the script deletes its work dir on exit). Separately, the script's apiserver `go build` fails on this machine with "module lookup disabled by GOPROXY=off" (no Go module cache) — unrelated environment limitation.
|
||||
|
||||
## Root cause
|
||||
TODO: required for fixed/partial
|
||||
|
||||
## Fix
|
||||
TODO: required for fixed/partial
|
||||
|
||||
## Verification
|
||||
- Test: TODO: name + file; RED before the fix, GREEN after
|
||||
- Suites: TODO: suite results and build profile
|
||||
- Live: TODO: soak/deploy run, or n/a and why
|
||||
|
||||
## References
|
||||
- Related: none
|
||||
Loading…
Add table
Add a link
Reference in a new issue