Skip to content

Regression in rust nightly 2017-03-04 #40493

Closed
@Drakulix

Description

@Drakulix

I cannot compile my library wlc (on crates.io) on nightlies later then 2017-03-03 anymore.
The code is not using any unstable features, if compiled with the feature "unsafe-stable" and results do not differ between "default" features (which uses optin_builtin_traits) and the "unsafe-stable" feature (which does disable optin_builtin_traits).

So code, that still works on stable and beta, does not compile anymore without any helpful error messages (see below).

Overview:

Working:

rustup run stable cargo build --features "unsafe-stable"
rustup run beta cargo build --features "unsafe-stable"
rustup run nightly-2017-03-03 cargo build --features "unsafe-stable"

Broken:

rustup run nightly-2017-03-04 cargo build --features "unsafe-stable"
rustup run nightly-2017-03-04 cargo build

Both abort with a stack overflow:

 Compiling wlc v2.0.1 (file:///home/drakulix/Projects/tavern/wlc)
     Running `rustc --crate-name wlc src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="unsafe-stable"' -C metadata=16cc333f6e306687 -C extra-filename=-16cc333f6e306687 --out-dir /home/drakulix/Projects/tavern/wlc/target/debug/deps -L dependency=/home/drakulix/Projects/tavern/wlc/target/debug/deps --extern libc=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblibc-2a4507ee5e52ea3e.rlib --extern wlc_sys=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libwlc_sys-03e3fe15a0f6e02b.rlib --extern uinput_sys=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libuinput_sys-1e8aa47014f4e364.rlib --extern lazy_static=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblazy_static-2a16fcec40d2bdf3.rlib --extern num_traits=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libnum_traits-51f88ce8f32c0283.rlib --extern bitflags=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libbitflags-88857433f6b67df9.rlib --extern log=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblog-2f7366be74992849.rlib --extern xkbcommon=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libxkbcommon-ff825cd69a6d510f.rlib`

thread 'rustc' has overflowed its stack
fatal runtime error: stack overflow
error: Could not compile `wlc`.

Caused by:
  process didn't exit successfully: `rustc --crate-name wlc src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 --cfg feature="default" --cfg feature="unsafe-stable" -C metadata=16cc333f6e306687 -C extra-filename=-16cc333f6e306687 --out-dir /home/drakulix/Projects/tavern/wlc/target/debug/deps -L dependency=/home/drakulix/Projects/tavern/wlc/target/debug/deps --extern libc=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblibc-2a4507ee5e52ea3e.rlib --extern wlc_sys=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libwlc_sys-03e3fe15a0f6e02b.rlib --extern uinput_sys=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libuinput_sys-1e8aa47014f4e364.rlib --extern lazy_static=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblazy_static-2a16fcec40d2bdf3.rlib --extern num_traits=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libnum_traits-51f88ce8f32c0283.rlib --extern bitflags=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libbitflags-88857433f6b67df9.rlib --extern log=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblog-2f7366be74992849.rlib --extern xkbcommon=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libxkbcommon-ff825cd69a6d510f.rlib` (exit code: 1)

rustup run nightly-2017-03-12 cargo build --features "unsafe-stable"
rustup run nightly-2017-03-12 cargo build

Both fail without any specific error:

Compiling wlc v2.0.1 (file:///home/drakulix/Projects/tavern/wlc)
     Running `rustc --crate-name wlc src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 --cfg 'feature="unsafe-stable"' --cfg 'feature="default"' -C metadata=16cc333f6e306687 -C extra-filename=-16cc333f6e306687 --out-dir /home/drakulix/Projects/tavern/wlc/target/debug/deps -L dependency=/home/drakulix/Projects/tavern/wlc/target/debug/deps --extern wlc_sys=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libwlc_sys-03e3fe15a0f6e02b.rlib --extern uinput_sys=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libuinput_sys-1e8aa47014f4e364.rlib --extern xkbcommon=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libxkbcommon-ff825cd69a6d510f.rlib --extern libc=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblibc-2a4507ee5e52ea3e.rlib --extern bitflags=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libbitflags-88857433f6b67df9.rlib --extern num_traits=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libnum_traits-51f88ce8f32c0283.rlib --extern lazy_static=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblazy_static-2a16fcec40d2bdf3.rlib --extern log=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblog-2f7366be74992849.rlib`
error: Could not compile `wlc`.

Caused by:
  process didn't exit successfully: `rustc --crate-name wlc src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 --cfg feature="unsafe-stable" --cfg feature="default" -C metadata=16cc333f6e306687 -C extra-filename=-16cc333f6e306687 --out-dir /home/drakulix/Projects/tavern/wlc/target/debug/deps -L dependency=/home/drakulix/Projects/tavern/wlc/target/debug/deps --extern wlc_sys=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libwlc_sys-03e3fe15a0f6e02b.rlib --extern uinput_sys=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libuinput_sys-1e8aa47014f4e364.rlib --extern xkbcommon=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libxkbcommon-ff825cd69a6d510f.rlib --extern libc=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblibc-2a4507ee5e52ea3e.rlib --extern bitflags=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libbitflags-88857433f6b67df9.rlib --extern num_traits=/home/drakulix/Projects/tavern/wlc/target/debug/deps/libnum_traits-51f88ce8f32c0283.rlib --extern lazy_static=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblazy_static-2a16fcec40d2bdf3.rlib --extern log=/home/drakulix/Projects/tavern/wlc/target/debug/deps/liblog-2f7366be74992849.rlib` (exit code: 1)

I have no idea, where I should start to debug this. Reproducing this error is also quite annoying to setup, as the library depends on a bunch of native libraries not available in most repositories. So I am thankful for any hints about how I could provide more information.

All tests where done after running cargo clean.

Meta

rustc --version --verbose:

rustc 1.17.0-nightly (824c9ebbd 2017-03-12)
binary: rustc
commit-hash: 824c9ebbd5f0611e326648d90ee3e50caf04bb7f
commit-date: 2017-03-12
host: x86_64-unknown-linux-gnu
release: 1.17.0-nightly
LLVM version: 3.9

Metadata

Metadata

Assignees

Labels

P-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-betaPerformance or correctness regression from stable to beta.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions