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 Android in CI #120593
base: master
Are you sure you want to change the base?
Update Android in CI #120593
Conversation
r? @Kobzol (rustbot has picked a reviewer for you, use r? to override) |
Pietro, I've added you explicitly since you're the only one to ever touch this lockfile, which means you're likely to be the one who can run |
cc @chriswailes |
The new files should be uploaded to the mirror. However, I'd like to get a +1 from another android target maintainer on this PR before moving ahead. cc @chriswailes @mgeisler (per platform support docs) |
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.
Lgtm!
Happy to see this land, as it looks like it will also allow simplifying away rust-lang/backtrace-rs#570 from backtrace-rs, too. |
ping @Mark-Simulacrum - it looks like it still says "waiting on author", but Chris has LGTM'd. |
@rustbot ready |
@bors r+ rollup=iffy |
Update Android in CI We are currently using a 10+ year old Android image, and it has caused trouble when working on rust-lang#120326. Our current NDK (25) only supports API 19+, so we were already out of spec. This PR: 1. Bumps the API used by the emulator in CI to 21, as per [NDK-26's release notes](https://github.com/android/ndk/wiki/Changelog-r26) deprecating 19 and 20 as targets. 2. Activates aarch64 testing on the emulator, since the base image is now a 64-bit image. 3. Bumps the NDK to 26b
💔 Test failed - checks-actions |
This comment has been minimized.
This comment has been minimized.
Seems possible that it's a real failure. Are you aware of any workflows for trying to reproduce locally? I would have expected that even a timeout would have logs leading up to the failing step... |
The logs just terminate somewhat cryptically here:
The log analyzer decided not to report it because its heuristics meant this was decided to not be very informative, which... is correct, honestly. With a "wonderful" log report like that, it's hard to actually rule out anything. Though, it probably should have decided to just fork over those last few lines anyways. |
☔ The latest upstream changes (presumably #124026) made this pull request unmergeable. Please resolve the merge conflicts. |
@bors r- |
@maurer any updates on this? thanks |
Sorry, I've been on vacation for the last two weeks. I should have a chance to investigate this further some time this week. |
Brief update:
Would folks prefer: As far as I can tell, b is closer to what we've done elsewhere, so it's what I'll configure if I don't hear otherwise. I'll update the change once I have something passing (with the caveat of a hack I'll need until the mirror is updated). |
This test was not actually being run before - it only runs on targets with SCS enabled, which is limited to `aarch64-linux-android` at the moment. This means that the test has been sitting broken and needs to be fixed before we can enable `aarch64-linux-android` in testing. * Rename CHECK function names to match current crate name * Disable optimization to prevent the functions from being made MIR-only
Stack probes are working correctly, but the SIGSEGV handler is not registered, so the expected message doesn't appear after running the test. Disable these to enable an aarch64-android runner. Re-enablement is tracked at rust-lang#124823
We were running testing on API 18, which was already out of support for NDK 25, and some of the ancient behavior in that image was causing trouble when developing `rustc` features (rust-lang#120326). Update to the current LTS NDK 26, and to its minimum supported API 21. Fixes: rust-lang#120567
Updating to NDK 26d and API 21 revealed that the most recent emulator no longer runs 32-bit devices at all. Indeed, Google stopped shipping 32-bit emulator images as of API level 31. Since this architecture is more used, and current images no longer have backcompat code for 32-bit code, testing aarch64 is both important for enabling developers to ship apps that run on modern devices and to future-proof us.
Some changes occurred in tests/codegen/sanitizer cc @rust-lang/project-exploit-mitigations, @rcvalle |
This comment has been minimized.
This comment has been minimized.
@Mark-Simulacrum , since you uploaded the files last time (so I know you have the power), can you upload with both @rustbot ready |
Happy to upload some files to our mirror, but I'm not sure where I should mirror them from or exactly which files need to be uploaded. Can you clarify? |
Specifically, I would like you to run:
with this CL pulled down. This will fetch the Android images + emulator from google's repositories and upload them to your buckets. I'll then drop DO NOT SUBMIT: Hack SDK manager to not use buckets from the PR to make sure it worked (let GHA run), and then drop DO NOT SUBMIT - force run aarch64-android and arm-android and it should be good for submission. |
Alright, that should be done. |
7f17002
to
65d8744
Compare
OK, ready for review - I've stripped both hack commits off. |
We are currently using a 10+ year old Android image, and it has caused trouble when working on #120326.
Our current NDK (25) only supports API 19+, so we were already out of spec. This PR: