-
Notifications
You must be signed in to change notification settings - Fork 198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't spend an hour on crates that timeout during the build #1910
Comments
I remember that the whole build-attempt topic predates most (all?) of us. To ask the "real" question: I imagine network errors, but these won't happen in the docker container itself, but only outside of in in our builder. So what remains? |
This isn't actually related to retrying the build attempts, these are 4 invocations of In this case it is actually possible that the 4th will succeed in very niche cases; the first two builds might timeout because of a locked dependency that times out, the third build might hit a bug in |
I see there is still very much I don't know about the build process :) So in extreme cases we would 4 times 4 tries? |
No, in the end it 'successfully fails' so we don't increment the attempt counter and retry. |
Ah, you're right. |
Currently if we have a build that hits the 15 minute timeout (e.g.
app-db-schema@0.1.2
) we will end up spending an hour total attempting to build the release. We do 4 builds total, each with the full timeout available to them:Cargo.lock
:a. Generate coverage data
b. Build docs
a. Generate coverage data
b. Build docs
It would be better to only generate the coverage data if the build succeeded, so we would only attempt builds 1.b. and 2.b. before deciding it timed out, but that has issues
docs.rs/src/docbuilder/rustwide_builder.rs
Lines 658 to 660 in 2e5ef9b
One idea would be to skip the subsequent steps if one fails because of a timeout rather than a build error. It seems unlikely that unlocking the crate will turn a timeout into a successful build, or that
rustdoc --show-coverage
would somehow be the cause of a timeout rather than it being one of the dependencies.The text was updated successfully, but these errors were encountered: