Skip to content

Handle crashing benchmarks better - #167

Merged
Jake Bailey (jakebailey) merged 4 commits into
mainfrom
report-benchmark-failures
Oct 21, 2026
Merged

Jake Bailey (jakebailey) merged 4 commits into
mainfrom
report-benchmark-failures

Conversation

@jakebailey

Copy link
Copy Markdown
Member

No description provided.

tsgo's LSP mode does not accept --disableAutomaticTypingAcquisition and
exits immediately with a usage error, so lsp-startup has been timing
flag parsing rather than server startup. It also makes the scenario
look like a crash once startup failures are detected.
If tsserver or the LSP server dies while a request is pending, the
response promise never settles. Node then exits with status 0 once the
event loop drains, so a crashed server is recorded as a successful run
with partial or missing timings.
A scenario that crashes the compiler under test has no samples, and an
empty measurement currently makes the comparison step throw. The whole
run then fails, and the PR gets a generic failure comment that hides
the results of every other scenario.

Record the failure explicitly so that results can still be merged,
uploaded and compared. Reports show the scenario as failed in place of
its metrics, so the crash is visible next to the other results.
When the compiler under test crashes, the benchmark should still
finish and report, with the crash called out, rather than failing the
whole pipeline or silently timing a broken run. Stop measuring a
scenario at its first failed iteration, since later iterations of a
crashing build only add time and noise.

tsc exits nonzero for ordinary type errors, so a tsc run counts as
failed only if it never reported its timing diagnostics.
@jakebailey
Jake Bailey (jakebailey) enabled auto-merge (squash) October 21, 2026 23:11
@jakebailey
Jake Bailey (jakebailey) merged commit 9898929 into main Oct 21, 2026
31 checks passed
@jakebailey
Jake Bailey (jakebailey) deleted the report-benchmark-failures branch October 21, 2026 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant