Rust: Performance regression in nightly-2019-12-14

Created on 15 Dec 2019  路  6Comments  路  Source: rust-lang/rust

nightly-2019-12-14 times out building a crate here after 60m.

nightly-2019-12-13 builds it in 2m.

cargo-bisect-rustc gives:

bisecting ci builds
starting at 3eeb8d4f2, ending at ff15e9670
fetching commits from 3eeb8d4f2 to ff15e9670
opening existing repository at "rust.git"
refreshing repository
looking up first commit
looking up second commit
checking that commits are by bors and thus have ci artifacts...
finding bors merge commits
found 6 bors merge commits in the specified range
opening existing repository at "rust.git"
refreshing repository
validated commits found, specifying toolchains
testing commits
verifying the start of the range does not reproduce the regression
installing 3eeb8d4f2fbae0bb1c587d00b5abeaf938da47f4
testing 3eeb8d4f2fbae0bb1c587d00b5abeaf938da47f4
tested 3eeb8d4f2fbae0bb1c587d00b5abeaf938da47f4, got No
uninstalling 3eeb8d4f2fbae0bb1c587d00b5abeaf938da47f4
confirmed the start of the range does not reproduce the regression
verifying the end of the range reproduces the regression
installing ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d
testing ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d
tested ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d, got Yes
uninstalling ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d
confirmed the end of the range reproduces the regression
installing 9409c208a9a70eb6194c7502979843f42d6fed1a
testing 9409c208a9a70eb6194c7502979843f42d6fed1a
tested 9409c208a9a70eb6194c7502979843f42d6fed1a, got Yes
uninstalling 9409c208a9a70eb6194c7502979843f42d6fed1a
installing cf7e019b42cd523d91cb350ab49acbda1b11e571
testing cf7e019b42cd523d91cb350ab49acbda1b11e571
tested cf7e019b42cd523d91cb350ab49acbda1b11e571, got No
uninstalling cf7e019b42cd523d91cb350ab49acbda1b11e571
searched toolchains 3eeb8d4f2fbae0bb1c587d00b5abeaf938da47f4 through ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d
regression in 9409c208a9a70eb6194c7502979843f42d6fed1a

Which relates to PR #66405

I'm working on a minimal repro but it may be difficult - the crate is a complex web API backend using a lot of async/await. Commenting out the entire route dispatcher brings us back to 2m compile time, bringing back routes one at a time indicates that routes which use database transactions (passing a &mut Transaction<'_> from deadpool-postgres to various async fns) trigger the regression, but they could also have something else in common.

C-bug E-needs-mcve I-compiletime T-compiler regression-from-stable-to-beta

Most helpful comment

Thank goodness, I spent a few hours trying to figure out what was triggering it here but didn't get anywhere. I'll close this as a dupe of #67454 since there's nothing here that isn't also on the other issue, and the other issue has much more useful detail.

All 6 comments

cc @nnethercote

@jonas-schievink: Is the crate publically available? It would be very helpful if I could build it myself and do some measurements, both to confirm that #66405 is at fault and to understand how it might have caused the regression. Although a minimal reproducer would be helpful, don't take too much effort producing one, because even a large test case would still be useful for me. Thanks.

@nnethercote (I think you meant to tag me)

Unfortunately this crate can't be shared, but I'm trying to produce something that I'm allowed to share. It's good to know it doesn't have to be minimal; as soon as I have something that's not sensitive I'll post it here even if I think it can be reduced further.

triage: for now, leaving unprioritized and removing nomination. Please re-nominate for prioritization after you come up with an example we can use to demonstrate the problem.

67454 has a reproducer for this regression.

Thank goodness, I spent a few hours trying to figure out what was triggering it here but didn't get anywhere. I'll close this as a dupe of #67454 since there's nothing here that isn't also on the other issue, and the other issue has much more useful detail.

Was this page helpful?
0 / 5 - 0 ratings