You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
1.100 beta crater regression: "No space left on device" and massive slowdown during doctests #164145
It appears to me that we're doing something much less efficiently on beta than on stable, and using much more disk space.
I tried running the tests on the dev desktop (dev-desktop-eu-2.infra.rust-lang.org). cargo +stable test used 0m32.266s to complete. However, cargo +beta test used 1m11.525s to complete. That is, running tests on beta is over twice as slow.
Bisected with cargo bisect-rustc --start=1.99.0 --end=beta --timeout 50 -- test:
********************************************************************************
Regression in 5392d2f545c6836dc79f209bcc14ac7179dbc4f2
********************************************************************************
Attempting to search unrolled perf builds
Found commits ["0e21efee", "0aebea15", "770a9cd8", "449ef23a", "a95bb512", "5fd80363", "a49eccce", "5ba40ad4", "2983377a", "033e87fb", "3b668784", "16c23a49"]
installing 0e21efee1ad09fb750d7925735bc0495cc10e971
rust-std-nightly-x86_64-unknown-linux-gnu: 31.40 MB / 31.40 MB [=============================================================================] 100.00 % 11.56 MB/s testing...
RESULT: 0e21efee1ad09fb750d7925735bc0495cc10e971, ===> Successfully compiled
uninstalling 0e21efee1ad09fb750d7925735bc0495cc10e971
installing 0aebea155e1762d121a36050809579171759e979
rust-std-nightly-x86_64-unknown-linux-gnu: 31.38 MB / 31.38 MB [=============================================================================] 100.00 % 11.47 MB/s testing...
RESULT: 0aebea155e1762d121a36050809579171759e979, ===> Compile error
uninstalling 0aebea155e1762d121a36050809579171759e979
Regression in https://github.com/rust-lang/rust/commit/0aebea155e1762d121a36050809579171759e979. Note that if it is a legacy rollup build, it might be available in https://github.com/rust-lang-ci/rust/commit/0aebea155e1762d121a36050809579171759e979.
The PR introducing the regression in this rollup is #161868: libtest: never iterate over all tests in `--exact` mode
Found an idea: the temp dirs are removed once all tests are run, so I'll have two doctests in 2021 edition run with --test-threads=1 and if the count is more than 1 when the second doctest runs, then the bug is there (already wrote the regression test). So now let me check how to fix the behaviour change.
I don't know how to add a regression test checking time complexity... the test is "make sure that with 1000s of #[test] functions it still can run a single test in Miri in reasonable time".
If it's quadratic then maybe 10K or 100K macro-generated tests would run in a few seconds with the fix, or timeout with the bug?
Not a very specific test (which might be good if we're testing for anything quadratic), but we'd notice if it added an hour or more to the test time.
It's logarithmic vs linear, so it needs a lot of tests to give a clear signal. And it only really makes a difference in Miri. In my benchmark it reduced 12s to 7s or so, not clear enough for a test.
Activity
theemathas commentedon Oct 11, 2026
Some ongoing discussion at #general > How to triage a massive test-running perf regression?
theemathas commentedon Oct 11, 2026
Bisected with
cargo bisect-rustc --start=1.99.0 --end=beta --timeout 50 -- test:Regressed in #161868. cc @RalfJung (author), @Mark-Simulacrum (reviewer)
24 remaining items
RalfJung commentedon Oct 12, 2026
GuillaumeGomez commentedon Oct 12, 2026
Found an idea: the temp dirs are removed once all tests are run, so I'll have two doctests in 2021 edition run with
--test-threads=1and if the count is more than 1 when the second doctest runs, then the bug is there (already wrote the regression test). So now let me check how to fix the behaviour change.GuillaumeGomez commentedon Oct 12, 2026
You didn't add a regression test we could use for ensuring that my fix is not regressing
cargo miri nextest?RalfJung commentedon Oct 12, 2026
I don't know how to add a regression test checking time complexity... the test is "make sure that with 1000s of
#[test]functions it still can run a single test in Miri in reasonable time".GuillaumeGomez commentedon Oct 12, 2026
Created #164202.
teor2345 commentedon Oct 12, 2026
If it's quadratic then maybe 10K or 100K macro-generated tests would run in a few seconds with the fix, or timeout with the bug?
Not a very specific test (which might be good if we're testing for anything quadratic), but we'd notice if it added an hour or more to the test time.
RalfJung commentedon Oct 12, 2026
Rollup merge of rust-lang#164202 - GuillaumeGomez:fix-doctest-temp-re…
Rollup merge of rust-lang#164202 - GuillaumeGomez:fix-doctest-temp-re…
Rollup merge of rust-lang#164202 - GuillaumeGomez:fix-doctest-temp-re…
Unrolled build for #164202 in rollup 164216
Rollup merge of #164202 - GuillaumeGomez:fix-doctest-temp-removal, r=…