Closed MarshalX closed 2 months ago
Comparing stable-pyo3
(3a8dcd7) with main
(04ba564)
✅ 192
untouched benchmarks
@davidhewitt fyi. some random segfault after upgrading to rust 1.17.1. idk is it on my side or pyo3`s. i think it could be related to https://blog.rust-lang.org/2024/03/30/i128-layout-update.html. for now, i will stay on rust 1.16.0. didn't expect it from rust...
That's a concern. Are you able to identify what code is segfaulting, does it reproduce locally? We should understand if it's a PyO3 or Rust problem, and either way it's probably going to be classed as a regression from stable-to-stable worth a bugfix (unless it really is related to the i128 layout changes).
@davidhewitt can't reproduce locally but probably because of my mac... (stable-aarch64-apple-darwin updated - rustc 1.77.1
)
from blog post:
There are also no changes to architectures other than x86-32 and x86-64.
gonna try on remote machine
@davidhewitt I can't reproduce on stable-x86_64-unknown-linux-gnu updated - rustc 1.77.1
😢 i've tried 1:1 flow from CI. with PGO data gathering. exit code is always 0; tests are passed. i have no ideas...
:(
Maybe can SSH into the runner and inspect the core dumps? See https://github.com/PyO3/pyo3/discussions/2781#discussioncomment-4228785 for ideas on how to do this.
@davidhewitt im sorry silly question what the difference between pip install -v -e .
without installed rust toolchains and with? i mean unit test workflow passes and codspeed does not. one calls just pip install -v -e .
the other one uses dtolnay/rust-toolchain
and then calls pip install -v -e .
upd. ig unit tests passes baceuse github runner has pre-installed rust https://github.com/actions/runner-images/blob/main/images/ubuntu/scripts/build/install-rust.sh
Yep preinstalled rust toolchain which is presumably older than 1.77 still.
@davidhewitt i ve had some success with CI debugging. here is what i got:
RUSTFLAGS="-Cprofile-generate=profdata"
debug=true
in Cargo.toml segfault doesn't happen!opt-level=2
segfault doesn't happen Upd. found mention of segfault near of __llvm_write_binary_ids
here: https://github.com/pydantic/pydantic-core/issues/451#issuecomment-1482788263
Upd2. they updated their forked llvm for rustc v1.17. and this PR introduces changes that now give segfault (ig) https://reviews.llvm.org/D146976 (commit in rust`s fork)
I think probably the best course of action here is to report this to the rust-lang/rust
main repo, hopefully someone working on the compiler has ideas.
@davidhewitt I started to prepare issue and go to CI SSH once again to gather proper info about rustc version and... it passes! i just rerun failed workflow from yesterday https://github.com/MarshalX/python-libipld/pull/44. well... some temporary magic from GHA runners? or maybe they notices some crashes/issues and fixed already
but in this PR still fails. i can't take it anymore 😢 i will just sit and wait for some fix from GitHub
who broke my project for the past 2 weeks 😢 let's compare the last successful run with today`s one:
diff: