-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Update Rust toolchain to 1.43.1 #1908
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
Update Rust toolchain to 1.43.1 #1908
Conversation
Hi, @timvisee! In order to use Rust 1.43 in the container, the change that you've done is unfortunately not enough, we will still use the old container image this way. For fixing the issue, we need to also publish a new container version ( Also, after publishing the container image, there will be some Do you still want to help on this (we can help you with it, but there is absolutely no problem if you don't want as it is not an easy item at all) or on other issue? Generally, the issues that are a good starting point for first-time contributions are marked with: |
Thanks for the explanation. I definitely thought the actual upgrade would be much simpler. I'd like to give this a try later today. I only have limited time available for this though. If I can't get it to work I'll leave it open for someone else. |
@lauralt I've resolved all clippy suggestions and reformatted for Rust 1.43.1 in 234a8f8. I think that's all I can do for now. Someone on the Firecracker team needs to publish an updated image before I can continue. I'll update the devtool script afterwards. Please let me know if there's anything else I can do. |
Thanks, @timvisee! We'll be working today to publish a new container image and then come back here with an update. I would like to also remove |
Hi @timvisee. I've experimented a bit with the container images that use the After running the test suite on both this PR and #1841, it seems that we need to go through a few iterations before merging, mainly due to a few test failures - we should see them once the I pushed a new container tag to Docker Hub, that uses rust toolchain diff --git a/tools/devtool b/tools/devtool
index 7a53a267..6297337d 100755
--- a/tools/devtool
+++ b/tools/devtool
@@ -73,7 +73,7 @@
# Development container image (name:tag)
# This should be updated whenever we upgrade the development container.
# (Yet another step on our way to reproducible builds.)
-DEVCTR_IMAGE="fcuvm/dev:v14"
+DEVCTR_IMAGE="fcuvm/dev:v15"
# Naming things is hard
MY_NAME="Firecracker $(basename "$0")" |
e81ac28
to
cd94a4a
Compare
I've increased the binary size limit for now, based on the reasoning here #1841 (comment). This PR is now blocked by #1913 |
e3aa3cd
to
e707954
Compare
Where is the increase in size coming from ? Is it just the upgrade of the toolchain ? I am little bit worried about this since we already inflated the binary with versioned serialization support. |
e707954
to
e8bf818
Compare
It seems there's one issue left to be fixed, judging by the CI status. It shows 'Device/resource busy' on x86_64. I'm not sure what is causing this, and don't believe this showed up when I started working on this PR.
Anyway, I'm not sure how to go about this right now. Does anybody have an idea? |
Hi @timvisee. |
ee5952a
to
8322fbd
Compare
Also, the buildkite CI build for this seems to be stuck. It looks like it's still running. Maybe someone should cancel it to prevent high cost for nothing, I can't do this myself. |
Hello @timvisee! While we are looking into this problem, could you please squash the two clippy commits together? It would make for a cleaner git log 😄 |
c122720
to
15189ee
Compare
Just one more nit. Please sign-off every commit: |
We should still check where the increase in binary size comes from and if we can lower it. |
Fixes firecracker-microvm#1904 Signed-off-by: timvisee <[email protected]>
Signed-off-by: timvisee <[email protected]>
Signed-off-by: timvisee <[email protected]>
15189ee
to
fcb38bd
Compare
Please also update coverage on AMD. |
I've lowered it by the same amount, see: fcb38bd#diff-49bb55812e565341f0e92d70ff51b302R20-R27 |
Oh, right. I think it would help if we would compare the dependencies of the project now, with the previous rust version. To do this, we can use cargo-bloat. |
@ioanachirca Is this something that can be done in a separate issue/PR? This PR didn't introduce significant code changes. |
I would rather reach a conclusion about this now (it is related to the Rust update after all), rather than introduce a (maybe) avoidable change and have to fix it later (or postpone it until it's forgotten). |
fcb38bd
to
d6244d3
Compare
Running
Running
We can see that the binary file size increased from |
I think the target should be the current size and the limit should be +10% or +15%.
We should open an issue for this and investigate (but not block this PR).
I believe this will go away altogether with #1841 |
SGTM. I'll open an issue. @timvisee , could you update the binary limit? |
@ioanachirca Sure, what limit(s) should I choose though? This is what I came up with based on the last CI results: FC_BINARY_SIZE_TARGET = 3124000 if MACHINE == "x86_64" else 3349336
FC_BINARY_SIZE_LIMIT = 3300000 if MACHINE == "x86_64" else 3500000 |
Seems fine. |
Signed-off-by: timvisee <[email protected]>
Signed-off-by: timvisee <[email protected]>
697928b
to
2da434b
Compare
@ioanachirca I've just pushed these new limits. This should be all then. |
It looks like this AMD branch isn't working: if "AMD" in platform.processor():
COVERAGE_TARGET_PCT = 84.35 2da434b#diff-49bb55812e565341f0e92d70ff51b302R26-R27 The |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it seems the AMD coverage check only works intermittently. We've only recently added AMD as a target and that check is not required yet (for reasons like this).
Reason for This PR
The latest cargo-audit used in the Docker images requires Rust >=1.40. The current image still uses Rust 1.39.
Blocked by #1913
Fixes #1904
Description of Changes
The Dockerfiles have been changed to use Rust 1.43.1, the latest stable Rust version.
rust-vmm
.License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license.
PR Checklist
[Reviewer TODO: Verify that these criteria are met. Request changes if not]
git commit -s
).unsafe
code is properly documented.firecracker/swagger.yaml
.CHANGELOG.md
.