Skip to content

Nightly segfaults when compiling Zenoh with non-zero opt-level #109775

Closed
@p-avital

Description

@p-avital

Hi,

Building Zenoh in release mode with a freshly updated nightly fails with a SIGSEGV (or STATUS_ACCESS_VIOLATION on Windows). This doesn't occur on stable or beta, or when building with any profile that has opt-level=0.

I stumbled upon this while trying to measure the performance impact of #109706, which branches from master at 82bfda8 and suffers from the same issue.

Reproduction

I don't know why, but the problem only appears on zenoh (that I'm aware of): cargo +nightly build --release -p zenoh --lib fails, while any other crate within the same repo works (provided they don't depend on zenoh)?

Meta

rustc --version --verbose:

rustc 1.70.0-nightly (17c116721 2023-03-29)
binary: rustc
commit-hash: 17c11672167827b0dd92c88ef69f24346d1286dd
commit-date: 2023-03-29
host: x86_64-unknown-linux-gnu
release: 1.70.0-nightly
LLVM version: 16.0.0

The same issue arises with the same version of nightly on Windows.

Backtrace

Caused by:
  process didn't exit successfully: 
  `rustc 
    --crate-name zenoh 
    --edition=2018 
    zenoh/src/lib.rs 
    --error-format=json 
    --json=diagnostic-rendered-ansi,artifacts,future-incompat 
    --diagnostic-width=114 
    --crate-type lib 
    --emit=dep-info,metadata,link 
    -C opt-level=3 
    -C panic=abort 
    -C linker-plugin-lto 
    -C codegen-units=1 
    -C metadata=0031528ae864209c 
    -C extra-filename=-0031528ae864209c 
    --out-dir /home/pavital/git/rust/zenoh/target/release/deps
    -L dependency=/home/pavital/git/rust/zenoh/target/release/deps
    --extern async_global_executor=/home/pavital/git/rust/zenoh/target/release/deps/libasync_global_executor-1ff61112e28e1cbe.rmeta
    --extern async_std=/home/pavital/git/rust/zenoh/target/release/deps/libasync_std-988e36f19cc5e2ed.rmeta
    --extern async_trait=/home/pavital/git/rust/zenoh/target/release/deps/libasync_trait-93e7e0bbadac263e.so
    --extern base64=/home/pavital/git/rust/zenoh/target/release/deps/libbase64-ea1eeec642ade256.rmeta
    --extern env_logger=/home/pavital/git/rust/zenoh/target/release/deps/libenv_logger-8ccda1eafc995615.rmeta
    --extern event_listener=/home/pavital/git/rust/zenoh/target/release/deps/libevent_listener-3cc31ad51f48aeba.rmeta
    --extern flume=/home/pavital/git/rust/zenoh/target/release/deps/libflume-0da401bed33d29f8.rmeta
    --extern form_urlencoded=/home/pavital/git/rust/zenoh/target/release/deps/libform_urlencoded-1115dac3759b1eb9.rmeta
    --extern futures=/home/pavital/git/rust/zenoh/target/release/deps/libfutures-aeea74045a0a57a3.rmeta
    --extern git_version=/home/pavital/git/rust/zenoh/target/release/deps/libgit_version-6d4abc185706ef2a.rmeta
    --extern hex=/home/pavital/git/rust/zenoh/target/release/deps/libhex-bb0526b7e1586bc0.rmeta
    --extern lazy_static=/home/pavital/git/rust/zenoh/target/release/deps/liblazy_static-fb13441a6070ae9c.rmeta
    --extern log=/home/pavital/git/rust/zenoh/target/release/deps/liblog-19ee123d01638ee4.rmeta
    --extern ordered_float=/home/pavital/git/rust/zenoh/target/release/deps/libordered_float-f568c8820d0c7ab9.rmeta
    --extern petgraph=/home/pavital/git/rust/zenoh/target/release/deps/libpetgraph-e0fdf141ecd952f4.rmeta
    --extern rand=/home/pavital/git/rust/zenoh/target/release/deps/librand-4e2123fd0a11d27b.rmeta
    --extern regex=/home/pavital/git/rust/zenoh/target/release/deps/libregex-beca65602df09da3.rmeta
    --extern serde=/home/pavital/git/rust/zenoh/target/release/deps/libserde-0fb1376baeee33d4.rmeta
    --extern serde_json=/home/pavital/git/rust/zenoh/target/release/deps/libserde_json-a53251bca4e05b29.rmeta
    --extern socket2=/home/pavital/git/rust/zenoh/target/release/deps/libsocket2-82cb53684de5bbe7.rmeta
    --extern stop_token=/home/pavital/git/rust/zenoh/target/release/deps/libstop_token-a05424a00cf2bbf4.rmeta
    --extern uhlc=/home/pavital/git/rust/zenoh/target/release/deps/libuhlc-b2b1cc63d4b7b253.rmeta
    --extern uuid=/home/pavital/git/rust/zenoh/target/release/deps/libuuid-ba935db1ddb3f729.rmeta
    --extern vec_map=/home/pavital/git/rust/zenoh/target/release/deps/libvec_map-7a8f92fcd8ca5e85.rmeta
    --extern zenoh_buffers=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_buffers-084660677c4f0082.rmeta
    --extern zenoh_cfg_properties=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_cfg_properties-628750cc8b8f4b9b.rmeta
    --extern zenoh_codec=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_codec-a47eb37f50ae40e2.rmeta
    --extern zenoh_collections=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_collections-342b78e0301634a0.rmeta
    --extern zenoh_config=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_config-6294abe5fa7c190e.rmeta
    --extern zenoh_core=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_core-08b193df4349611e.rmeta
    --extern zenoh_crypto=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_crypto-445a326e5ed1c9f1.rmeta
    --extern zenoh_link=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_link-1e8bcec95b945ac3.rmeta
    --extern zenoh_macros=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_macros-075096dd04145b56.so
    --extern zenoh_plugin_trait=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_plugin_trait-ae545a53b834ba08.rmeta
    --extern zenoh_protocol=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_protocol-c05ff2f9ec9e06d3.rmeta
    --extern zenoh_result=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_result-2846391fcffcb2a9.rmeta
    --extern zenoh_sync=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_sync-e3e8a288f21b29c4.rmeta
    --extern zenoh_transport=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_transport-f45b981e4d814715.rmeta
    --extern zenoh_util=/home/pavital/git/rust/zenoh/target/release/deps/libzenoh_util-81eff5acfd2db5b9.rmeta`
  (signal: 11, SIGSEGV: invalid memory reference)

Metadata

Metadata

Assignees

Labels

A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.C-bugCategory: This is a bug.I-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions