-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Nightly version mismatch #14431
Comments
This is because the linux nightlies are failing (but not the windows ones). |
This was just a hiccup in our automation. Adding more automation to ensure that everything is in sync 100% of the time is probably overkill for now, so I'm going to close this. |
Reopening. This keeps cropping up and we should really just buckle down and fix it. https://botbot.me/mozilla/rust-internals/2014-07-09/?msg=17718208&page=8 |
@alexcrichton Think I might tackle this problem before the full release channel automation. Plan:
|
Actually, after writing all that out, it's a lot of work. May not be right to do it first. |
cc #17398 |
There's a race condition in this process between the time the script checks for the commit ids and moves everything. Without downloading the entire set there may not be a solution. |
I think it's also a little more racy in terms of uploading docs because they're entire directory trees as opposed to one file. Here's how I'd tweak it:
|
That would involve not having staging areas for docs on S3 as well, you just couldn't view staging docs. |
Servo wants this for cargo as well. |
Per #16456 (comment) we don't really need to do the staging on s3, but can do it locally on the build master. This might be cleaner, certainly leaves less room for network-related errors. |
Let's do the staging locally on the build master to avoid various complexity. For simplicity I don't want to make changes to how docs are produced.
This doesn't include the metadata @alexcrichton suggested previously since there's no extra risk of bad checksums or races. Not sure if we need to add any locks here or not to protect the consistency of the final upload. It may be that the final step is completely serialized w/r/t any slave steps. |
cc @wycats |
@brson sounds good to me, I probably wouldn't bother with locking initially, it shouldn't be too too hard to add one anyway. We could even have the builders upload to another temporary location and the python configuration itself copies it into the staging location (which I think must be guaranteed to be serialized). |
The build master doesn't always know the names of the artifacts it is producing, particularly for stable releases, so the suggested scheme doesn't work as is because it doesn't know what commit-id files to look for. We might instead create subdirectories of |
I put a change implementing this into production last night but ran into a major complication: nightly builds kick off at different times depending on availability of slaves, resulting in different revs becoming the nightly. As a result the script didn't recognize the build as finished and never uploaded. This is a pretty ugly problem that I don't immediately know how to solve. |
@brson One solution: have the buildbots checkout the first commit after midnight GMT (or whatever time you want) and build that. |
I've put this back into production. They should all build the same revision now. Still waiting to see some successful builds. |
Seems to be working. |
Right now, the Windows nightly version is
rustc 0.11.0-pre-nightly (6b1426b 2014-05-25 01:11:19 -0700)
while the Linux version isrustc 0.11.0-pre-nightly (33c3edd 2014-05-23 00:31:27 -700)
. The Windows binary nightlies cannot compile the source nightlies, so there's another version mismatch there (there's no obvious way to tell what version the source nightlies are).This should not happen, and all nightlies should be in sync. It becomes very difficult to port between platforms when the compiler versions are all different.
The text was updated successfully, but these errors were encountered: