Title: oracle-gaps: an internal error (exit 3) in CI during the e2e stability rerun under load · Issue #56 · TanStack/oracles · GitHub
Open Graph Title: oracle-gaps: an internal error (exit 3) in CI during the e2e stability rerun under load · Issue #56 · TanStack/oracles
X Title: oracle-gaps: an internal error (exit 3) in CI during the e2e stability rerun under load · Issue #56 · TanStack/oracles
Description: Summary In CI on #48 (head 717d7cc), an oracle-gaps run exited 3 with an internal error. It was the stability rerun of the e2e unit fixed seed 20261105: every outcome class, on the edited source. Law 12 says that no legal history reaches...
Open Graph Description: Summary In CI on #48 (head 717d7cc), an oracle-gaps run exited 3 with an internal error. It was the stability rerun of the e2e unit fixed seed 20261105: every outcome class, on the edited source. L...
X Description: Summary In CI on #48 (head 717d7cc), an oracle-gaps run exited 3 with an internal error. It was the stability rerun of the e2e unit fixed seed 20261105: every outcome class, on the edited source. L...
Opengraph URL: https://github.com/TanStack/oracles/issues/56
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"oracle-gaps: an internal error (exit 3) in CI during the e2e stability rerun under load","articleBody":"## Summary\n\nIn CI on #48 (head 717d7cc), an `oracle-gaps` run exited 3 with an internal error. It was the stability rerun of the e2e unit `fixed seed 20261105: every outcome class`, on the edited source. Law 12 says that no legal history reaches an internal error, and a slow runner is a legal condition, so this is a defect. A rerun of the same job passed.\n\n- Run 43346685892, job 131627616481 (\"Gap report end-to-end oracle (fixed seed, 3/3)\"). The job took 14m0s, and the unit took 517 s; the same unit took 142 s in the rerun and 134 s on main.\n- The violation reported: `oracle-gaps.report violated at checkpoint \"stability\" (law: completion)`, `the CLI did not complete on the edited source (exit 3)`.\n- The CLI's stdout before the crash (as the e2e driver kept it):\n\n```text\nDifference: the CLI did not complete on the edited source (exit 3): ests/a.test.ts for 2s\nbusy: sut.ts:M170 in tests/a.test.ts for 2s\nbusy: sut.ts:M174 in tests/a.test.ts for 2s\nnot-infected L197 sut.ts:M161 ` > ` → ` >= `\nbranch-never-taken L200 sut.ts:M163 ` x > 4 ` → ` true `\ntimeout L200 sut.ts:M164 ` x > 4 ` → ` false `\nbusy: sut.ts:M174 in tests/a.test.ts for 4s\nbusy: sut.ts:M168 in tests/a.test.ts for 2s\nbusy: sut.ts:M177 in tests/a.test.ts for 2s\nbusy: sut.ts:M172 in tests/a.test.ts for 2s\nbusy: sut.ts:M175 in tests/a.test.ts for 2s\nnot-infected L200 sut.ts:M165 ` > ` → ` >= `\ntimeout L200 sut.ts:M166 ` out.push('s54'); ` → ` ; `\nbranch-never-taken L203 sut.ts:M167 ` x > 4 ` → ` true `\nbusy: sut.ts:M172 in tests/a.test.ts for 4s\nnot-infected L206 sut.ts:M173 ` > ` → ` >= `\n```\n\nThe internal error's stack is in the fixture's `out/error.log`. The e2e driver deleted that file with its scratch directory, and CI uploads no artifact, so the stack is lost.\n\n## Reproduction attempts (all exited 0)\n\nOn a kept fixture of the same constructed history, run locally under the e2e lock:\n- With tight limits, `--first-limit/--hang-limit/--mutant-limit` of 100/1000/1500 ms, 200/2000/3000 ms, and 50/600/900 ms.\n- With the e2e's own limits (1000/20000/15000 ms, `--contexts 4`), three rounds with 14 busy node loops and three rounds with 54 busy loops on an 18-core machine. These runs printed the same `timeout` lines that CI printed before the crash (M164, M166, M172, M174, M210). Those mutants are the hang witnesses, which are timeouts by design.\n\n## Hypotheses, none confirmed\n\n1. A runner path that throws an invariant error under heavy load, for example `runOwners`'s \"has no unit and no earlier kill\", or a batch whose run reports an error outside any test while copies are cut (see the e2e limits, \"a batch whose run reports an error outside any test reruns each copy alone\").\n2. #48's new wrappers in the capture (`capture-setup.mjs`): the clock and timer wrappers, the `Date` proxy, and the stack read on clock reads. They run in every copy, and a failure there under load could surface as an internal error. This is a real candidate, and #48 has not ruled it out.\n3. Something in the environment (descriptors, disk, memory) on the runner.\n\n## Diagnostic in place\n\nFrom #48 onward, when a run exits 3, the e2e driver copies the start of `error.log` into the observed stderr. The next \"did not complete (exit 3)\" difference will carry the stack.\n","author":{"url":"https://github.com/KyleAMathews","@type":"Person","name":"KyleAMathews"},"datePublished":"2026-11-13T03:19:20Z","url":"https://github.com/TanStack/oracles/issues/56"}
| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:22f3f684-2339-34c1-9254-90b5f64ce6d0 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C6B4:15AF82:10B8829:161C761:6AF9B882 |
| html-safe-nonce | c0a6a7b4eed10bc4d54fa122c632f735f41a91e8c2f90804ef2c2a13d3668ece |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNkI0OjE1QUY4MjoxMEI4ODI5OjE2MUM3NjE6NkFGOUI4ODIiLCJ2aXNpdG9yX2lkIjoiNTczOTg0NTc2Mjc2MjI1ODU2MyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 487ef299db38dfcddc176c00ce0c718438f24b4ef6940edcac80d3d210aa6fd8 |
| hovercard-subject-tag | issue:6363960967 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/TanStack/oracles/56/issue_layout |
| twitter:image | https://opengraph.githubassets.com/36840087e6cccff6bb3f0f484a33d7edc2ef16fa421bd9c4c42d949caebccabb/TanStack/oracles/issues/56 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/36840087e6cccff6bb3f0f484a33d7edc2ef16fa421bd9c4c42d949caebccabb/TanStack/oracles/issues/56 |
| og:image:alt | Summary In CI on #48 (head 717d7cc), an oracle-gaps run exited 3 with an internal error. It was the stability rerun of the e2e unit fixed seed 20261105: every outcome class, on the edited source. L... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | KyleAMathews |
| hostname | github.com |
| expected-hostname | github.com |
| None | 612d3e6ffd693e7ea8d9fcf452370995872baef31d825b1fedef704cd3d24ac7 |
| turbo-cache-control | no-preview |
| go-import | github.com/TanStack/oracles git https://github.com/TanStack/oracles.git |
| octolytics-dimension-user_id | 72518640 |
| octolytics-dimension-user_login | TanStack |
| octolytics-dimension-repository_id | 1443546044 |
| octolytics-dimension-repository_nwo | TanStack/oracles |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1443546044 |
| octolytics-dimension-repository_network_root_nwo | TanStack/oracles |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 072e34035c13c31543fba9f025cbbbda4210dae4 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | issues |
Links:
Viewport: width=device-width