docs(known-issues): note recent CI hits for SymbolIndexStore race#74
docs(known-issues): note recent CI hits for SymbolIndexStore race#74
Conversation
Record that the documented SymbolIndexStore.demangledNode data race has been reproduced on two recent main-push CI runs (debug step after 0.9.1 docs merge, release step after 0.10.0 merge), while the matching PR-branch runs for the same commits pass. Makes the flaky, parallel-harness-only nature easier to spot for future triage.
There was a problem hiding this comment.
Code Review
This pull request updates KNOWN_ISSUES.md to include details about recent CI failures on the main branch caused by a known race condition in the parallel test harness. The review feedback points out a minor capitalization inconsistency in the new entry to match the existing style of the document.
| - **Why deferred:** Running individual sub-suites (for example `--filter SwiftInterfaceBuilderTestSuite.MachOFileTests`) passes reliably, and end-to-end tests (`SymbolTestsCoreE2ETests`, `MachOSymbolsTests`, `DemanglingTests`) also pass. Only the parallel-suite harness configuration exposes the race, so ordinary CLI workflows are unaffected. | ||
| - **Potential fix:** Either (a) guard `demangledNodeBySymbol` with the same `SharedCache` mutex that already wraps `Storage` access, (b) make `setDemangledNode`/`demangledNodeBySymbol` itself thread-safe with an internal lock, or (c) pre-populate `demangledNodeBySymbol` completely during `buildStorageImpl` so `demangledNode(for:in:)` becomes read-only at query time. | ||
| - **Tracking:** Observed during PR #61 review-follow-up testing. | ||
| - **Recent CI hits:** reproduced on `main` push runs under `.github/workflows/macOS.yml` — after merging `docs/readme-0.9.1` the debug-mode `swift test` step crashed with signal 11 (run 24628302034), and after merging `release/0.10.0` the release-mode step crashed the same way (run 24633097766). Both commits passed on their matching PR-branch runs (e.g. run 24633093885 for `release/0.10.0`), reinforcing the parallel-harness-only nature of the race. |
There was a problem hiding this comment.
The description following the bold label should start with a capital letter to maintain consistency with the existing entries in this file (e.g., lines 22, 24, and 26).
| - **Recent CI hits:** reproduced on `main` push runs under `.github/workflows/macOS.yml` — after merging `docs/readme-0.9.1` the debug-mode `swift test` step crashed with signal 11 (run 24628302034), and after merging `release/0.10.0` the release-mode step crashed the same way (run 24633097766). Both commits passed on their matching PR-branch runs (e.g. run 24633093885 for `release/0.10.0`), reinforcing the parallel-harness-only nature of the race. | |
| - **Recent CI hits:** Reproduced on `main` push runs under `.github/workflows/macOS.yml` — after merging `docs/readme-0.9.1` the debug-mode `swift test` step crashed with signal 11 (run 24628302034), and after merging `release/0.10.0` the release-mode step crashed the same way (run 24633097766). Both commits passed on their matching PR-branch runs (e.g. run 24633093885 for `release/0.10.0`), reinforcing the parallel-harness-only nature of the race. |
There was a problem hiding this comment.
Pull request overview
Updates the project’s known-issues documentation to record two recent CI crashes that reproduce the already-documented SymbolIndexStore.demangledNode(for:in:) parallel-test data race, helping correlate the issue with specific main push runs.
Changes:
- Add a “Recent CI hits” bullet under the existing
SymbolIndexStore.demangledNode(for:in:)race entry. - Capture the affected CI workflow, test mode (debug vs release), and run IDs where the crash occurred.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - **Why deferred:** Running individual sub-suites (for example `--filter SwiftInterfaceBuilderTestSuite.MachOFileTests`) passes reliably, and end-to-end tests (`SymbolTestsCoreE2ETests`, `MachOSymbolsTests`, `DemanglingTests`) also pass. Only the parallel-suite harness configuration exposes the race, so ordinary CLI workflows are unaffected. | ||
| - **Potential fix:** Either (a) guard `demangledNodeBySymbol` with the same `SharedCache` mutex that already wraps `Storage` access, (b) make `setDemangledNode`/`demangledNodeBySymbol` itself thread-safe with an internal lock, or (c) pre-populate `demangledNodeBySymbol` completely during `buildStorageImpl` so `demangledNode(for:in:)` becomes read-only at query time. | ||
| - **Tracking:** Observed during PR #61 review-follow-up testing. | ||
| - **Recent CI hits:** reproduced on `main` push runs under `.github/workflows/macOS.yml` — after merging `docs/readme-0.9.1` the debug-mode `swift test` step crashed with signal 11 (run 24628302034), and after merging `release/0.10.0` the release-mode step crashed the same way (run 24633097766). Both commits passed on their matching PR-branch runs (e.g. run 24633093885 for `release/0.10.0`), reinforcing the parallel-harness-only nature of the race. |
There was a problem hiding this comment.
The value after Recent CI hits: starts with lowercase "reproduced"; consider capitalizing it to match the sentence-style formatting used in the other bullets (e.g., Tracking: Observed…, Raised…).
| - **Recent CI hits:** reproduced on `main` push runs under `.github/workflows/macOS.yml` — after merging `docs/readme-0.9.1` the debug-mode `swift test` step crashed with signal 11 (run 24628302034), and after merging `release/0.10.0` the release-mode step crashed the same way (run 24633097766). Both commits passed on their matching PR-branch runs (e.g. run 24633093885 for `release/0.10.0`), reinforcing the parallel-harness-only nature of the race. | |
| - **Recent CI hits:** Reproduced on `main` push runs under `.github/workflows/macOS.yml` — after merging `docs/readme-0.9.1` the debug-mode `swift test` step crashed with signal 11 (run 24628302034), and after merging `release/0.10.0` the release-mode step crashed the same way (run 24633097766). Both commits passed on their matching PR-branch runs (e.g. run 24633093885 for `release/0.10.0`), reinforcing the parallel-harness-only nature of the race. |
Summary
Record that the previously documented
SymbolIndexStore.demangledNode(for:in:)data race (KNOWN_ISSUES.md § Concurrency) was reproduced on two recentmain-push CI runs under.github/workflows/macOS.yml:docs/readme-0.9.1— debug-modeswift teststep crashed with signal 11 (run 24628302034).release/0.10.0— release-modeswift teststep crashed the same way (run 24633097766).The matching PR-branch runs for the same commits passed (e.g. run 24633093885 on
release/0.10.0), reinforcing the parallel-harness-only nature of the race.No code change — documentation only.
Test plan