-
Notifications
You must be signed in to change notification settings - Fork 372
chore: downgrade to rust 1.85.1 #5194
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
Conversation
This reverts commit d1dc4c2.
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.
If this pull request changes the behavior of any canister owned by
the Governance team in an externally visible way, remember to
update the corresponding unreleased_changelog.md file(s).
To acknowldge this reminder (and unblock the PR), dismiss this
code review by going to the bottom of the pull request page, look
for where it says this bot is requesting changes, click the three
dots on the right, select "Dismiss review", and supply one of the
following reasons:
-
Done.
-
No canister behavior changes.
To be more precise, "externally visible behavior change" usually
means that responses differ in some way. However, "externally
visible behavior change" is not limited to that. For example, it
could also means that the canister makes different requests to
other canisters.
No canister behavior changes.
mbjorkqvist
left a comment
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.
FI change LGTM!
This reverts commit c458123.
This reverts commit d1dc4c2 which broke the x86_64-darwin build of PocketIC. To improve test coverage, we include the prefix
//packages/pocket-ic(in addition to//rs) for macOS Intel tests.A minimal example (PoC) of the PocketIC issue on x86_64-darwin is available on the branch mraszyk/hyper-issue and can be executed as follows:
It passes on Rust version 1.85.1 (reverted to by this PR), but fails on 1.86.0 and 1.87.0 (note that
./bin/bazel-pin.shmust be run after updating the Rust version inWORKSPACE.bazel).Also including the PoC here in case the branch was (accidentally) deleted:
When debugging this further we discovered that the
hyperweb client library on x86_64-darwin doesn't write the HTTP version into the HTTP request. So the request looks like:while a successful request with
curllooks like:Looking into this further and in particular how the hyper client encodes HTTP requests.
It goes something like this:
now here’s the weird part. In our case
msg.head.versionisVersion::HTTP_11, i.e. with this change below the test passes (we receive 200 OK):unsurprisingly, with this next snippet the test passes too:
here this is just an extra handling of a potentially bad version and we still get a 200 OK back. On this other hand, this one causes the test to fail (we get 400 Bad Request, i.e. the version is missing):
In theory the runtime behavior should be pretty much the same; and while this snippet makes the test fail, changing characters here an then (adding match cases, etc) can make it pass. So unfortunately this looks like it might be a compiler issue on x86-64 darwin.