-
Notifications
You must be signed in to change notification settings - Fork 41
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
Some timing tests fail on ARM #1466
Comments
Same bug noticed on the Hydra CI:
|
Same bug noticed on the GitHub Actions CI:
|
@jpraynaud Is there any status update on arm64 based builds? If this bug is resolved will future Mithril releases include an arm64/aarch64 based release binary? Thanks in advance. |
@TrevorBenson We did not progress on this issue so this won't be included in the next release. About this issue do this test still fails on your ends? If yes does it fails every time or only sporadically? The reproduction is extremely rare on our CI but they're all x86 based. This bug is kind of surprising since the failing test use only static data: #[test]
fn check_seconds_elapsed_in_json_report_with_more_than_100_milliseconds() {
let progress_bar = ProgressBar::new(10).with_elapsed(Duration::from_millis(5124));
let json_string = ProgressBarJsonFormatter::format(&progress_bar);
assert!(
json_string.contains(r#""seconds_elapsed": 5.124"#),
"Not expected value in json output: {}",
json_string
);
} And the format function only use straightforward calls (code simplified): pub fn format(progress_bar: &ProgressBar) -> String {
format!(
r#"{{""seconds_elapsed": {}.{:0>3}}}"#,
progress_bar.elapsed().as_secs(),
progress_bar.elapsed().subsec_millis(),
)
} So it's highly unlikely that's due to the host compute speed. |
Binaries for arm64 can be built on the x86_64 based github hosted runners, although requires extra actions/steps involving containers.
The above is food for thought in case the need arises before arm64 hosted runners are available. There is no rush on my side to retool the CI, I produce arm64 binaries for my own use with this method when upstream does not.
I stopped running tests due to failed CI runs. I've created a testing branch and re-enabled the tests for all components. I'll track which tests fail for which component and report findings back later today. |
I think I forgot to mention docker/setup-buildx-action is required to use docker/setup-qemu-action and platforms. The docs are not very explicit about it, but I recall build failures (not related to this ticket, just arm64 in general) when I disabled the buildx caches but tried to use qemu. |
On an Ampere system:
All three succeed if only |
The tests you mentioned, check_seconds_elapsed_in_json_report_with_more_than_100_milliseconds, did not fail. I forgot I had meant to follow up the following morning with a gist of the complete results of the test and failure. Here is the link to the gist |
CC @locallycompact as you had been looking into arm64 builds for Hydra lately. Seems like we could mutualize any native builders and/or look into the qemu approach if cross compilation via nix proves to be annoying? |
FWIW I have had success building with QEMU, but sometimes the |
Hello @TrevorBenson @TerminadaPool, For failing cardano_db_download_checker tests, it will be done in another issue. Thank you to detail in the ticket the specificities of this environment. |
Context & versions
mithril: v2403.1
Platform: ARM64, https://www.solid-run.com/embedded-networking/nxp-lx2160a-family/cex7-lx2160/#carrier-boards
Steps to reproduce
make test
Actual behavior
Is this platform is too slow?
The text was updated successfully, but these errors were encountered: