Diagnose the Windows Bible-sync fixture root leak in a failed server shard
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- git, javascript
Research direction
Start with server/services/writersRoom/bibleSync.test.js and its module scoped fixture allocation and afterAll cleanup; inspect the preserved Windows job log and shared Vitest temporary root lifecycle. Add bounded lifecycle diagnostics and reproduce the fail-fast boundary with deterministic readiness events and an active fixture. Done means the retained allocation and first unconfirmed boundary are attributed, a negative control detects the failure, and a demonstrated repair passes under the existing assertions, deadlines, and leak guard.
Written by the indexing model from the issue text.
Description
Observed failure
Windows server shard 1/3 for PR #13406 at head 56ed2a76c7f5c4b74695088193f59c1a045ccab1 failed the global temporary-root leak guard with one wr-bible-sync- entry. Preserved job: https://github.com/atomantic/PortOS/actions/runs/40046872498/job/120730611210 .
The same shard reported services/writersRoom/bibleSync.test.js green (4 tests, 2 skipped), then failed a different real-Git test on CRLF-versus-LF bytes. The line-ending defect is independently reproduced and being repaired in #13406. The retained Bible fixture root is a separate cleanup observation; the log does not prove whether fail-fast interruption, late async writes, or another ownership boundary caused it. It is not established as a harmless flake.
Redacted evidence:
services/writersRoom/bibleSync.test.js (4 tests | 2 skipped) passed
services/git.rebasePush.test.js: expected LF bytes, received CRLF
Test Files 1 failed | 243 passed (520)
test temp leak: wr-bible-sync- ×1
test temp leak guard: failing the run with exit code 1
Current source and chosen next step
server/services/writersRoom/bibleSync.test.js allocates its synthetic data root at module scope before its dynamic service imports. Its afterAll removes that root synchronously. The suite exercises Bible delivery, conflict journaling, and peer-sync asset workflows through mocked peer transport. Those facts identify the fixture owner but do not establish why the root survived this job.
Add bounded allocation, hook-entry/completion, and pending-work diagnostics for this fixture without exposing host paths or record contents. Reproduce the supported Windows fail-fast/bail boundary with deterministic readiness events and an active fixture, distinguishing incomplete module/hook setup from writes that outlive cleanup. Repair the demonstrated settlement or teardown boundary and keep uncertain/unconfirmed cleanup as failure. Do not raise test deadlines, retry until green, weaken the global leak guard, or delete a root owned by another worker.
Affected boundaries: server/services/writersRoom/bibleSync.test.js, its demonstrated outstanding service work if any, and the shared Vitest temporary-root lifecycle only where evidence requires it. Keep forge/model/peer I/O mocked and all fixture data synthetic.
Acceptance criteria
- Attribute the retained allocation and first unconfirmed lifecycle boundary, or explicitly retain a non-reproduction and the original failure.
- A deterministic negative control detects the diagnosed missing settlement/removal ordering.
- Fixture teardown drains its own async work before removal, while preserving other live owners and reporting failed cleanup.
- The relevant Windows shard/fail-fast reproduction passes after a demonstrated repair under unchanged assertions, deadlines, and leak guard.
- Retain the first failing job; a later pass alone is not a causal fix.
Dispatch: model:heavy for cross-worker interruption and asynchronous fixture-ownership reasoning; effort:high for controlled attribution and a meaningful negative control. Owner: PortOS test infrastructure. Found while repairing required CI for #13366; this separate unresolved lifecycle investigation is not folded into the bounded LF fixture correction.
- Dominant language
- JavaScript
- Stars
- 38
- Forks
- 32
- Avg merge
- 44m
- Merged PRs (30d)
- 990
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from atomantic/PortOS
-
area:media blocked cuda effort:high enhancement help wanted model:medium plan windows
Difficulty 4/5 3-5 days Newbie friendliness 35/100
atomantic/PortOS#13683 · 1 comment ·
Maintainers usually reply within 1 day
-
apple-silicon area:media blocked effort:high enhancement help wanted macos model:heavy plan
Difficulty 5/5 Over a week Newbie friendliness 20/100
atomantic/PortOS#13682 · 1 comment ·
Maintainers usually reply within 1 day
-
area:media blocked cuda effort:medium help wanted model:medium plan windows
Difficulty 3/5 1-2 days Newbie friendliness 35/100
atomantic/PortOS#13681 · 1 comment ·
Maintainers usually reply within 1 day
-
apple-silicon area:media blocked effort:medium help wanted macos model:medium plan
Difficulty 4/5 3-5 days Newbie friendliness 28/100
atomantic/PortOS#13680 · 1 comment ·
Maintainers usually reply within 1 day
-
area:media blocked effort:high model:medium plan planner:gpt-6-1-sol
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
All issues in atomantic/PortOS
Similar issues
-
Link Checker ReportOpenautomated issue report
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 70/100
microsoft/playwright#43640 ·
Maintainers usually reply within 1 day
-
✏️ Editing - Tags
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
openfoodfacts/openfoodfacts-server#15127 ·
Maintainers usually reply within 1 day
-
enhancement good first issue hacktoberfest help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Andbal23/dynamic-music-pill#195 ·
Maintainers usually reply within 1 day