Summary: | dev-lang/rust-1.41.0 breaks backtrace-0.3.44 test "smoke" with --all-features | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Kent Fredric (IRC: kent\n) (RETIRED) <kentnl> |
Component: | Current packages | Assignee: | Gentoo Rust Project <rust> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | navi, randy |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | Decrufting patch required for --all-features without nightly |
Description
Kent Fredric (IRC: kent\n) (RETIRED)
2020-02-21 08:14:17 UTC
Further digging: If you ignore the effects of the RUSTFLAGS, you can reduce the failure set to this: > RUSTFLAGS="-Cdebuginfo=2 -Copt-level=3" cargo +system test --no-default-features --features "std libunwind gimli-symbolize" --test smoke It doesn't fail if you hand-expand gimli-symbolize, std is a requirement, and it doesn't fail without libunwind. So looking at the failing test source: > static LIBUNWIND: bool = cfg!(all(unix, feature = "libunwind")); > static GIMLI_SYMBOLIZE: bool = cfg!(all(feature = "gimli-symbolize", unix, target_os = "linux")); But doesn't really explain the issue. All I can tell is GIMLI_SYMOLIZE being true means the "can_resolve" is true, which means this block is triggering: if can_resolve { addr.expect("didn't find a symbol"); } What bothers me is I can't tell *why* its returning, the loop is setting resolved to 1, ... and then it errors because it worked?! Sorry, I don't grok this logic. i'm pretty sure it's because compiler/standard lib built without debuginfo. even some rust tests fail if you compile it without debuginfo. currently ebuild disabled optimize with USE=debug and it should not, as it produces unusable compiler (25x slower), so we need to set optimize = true no matter if USE=debug or not. so if you wanna rebuild rust with USE=debug, make use that optimize=true in config.toml more info here https://github.com/rust-lang/rust/blob/master/config.toml.example I'll try a rebuild later. Another explody combo: RUSTFLAGS="-Cdebuginfo=2 -Copt-level=3" cargo +system test --no-default-features --features "std unix-backtrace gimli-symbolize" --test smoke debug rust still fails tests, maybe it's upstream bug? I see some issues that mention if dynamic libs are used it behaves differently. rustup installed rust is pretty static. https://github.com/rust-lang/backtrace-rs/issues/238 (In reply to Georgy Yakovlev from comment #4) > debug rust still fails tests, maybe it's upstream bug? > I see some issues that mention if dynamic libs are used it behaves > differently. > rustup installed rust is pretty static. > > https://github.com/rust-lang/backtrace-rs/issues/238 Hard to say :/ I just wanted to rule out any differences between our rust and upstreams which upstream *could* use as justification to not respond at all to the bug. |