Skip to content

ICE with codegen-units>1 #37828

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

Closed
linuskr opened this issue Nov 17, 2016 · 4 comments
Closed

ICE with codegen-units>1 #37828

linuskr opened this issue Nov 17, 2016 · 4 comments
Labels
I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ regression-from-stable-to-nightly Performance or correctness regression from stable to nightly.

Comments

@linuskr
Copy link

linuskr commented Nov 17, 2016

Since i think the previous nightly compiling xml-rs crashes with an internal compiler error when using more than one codegen-units. My rustc version is

rustc --version --verbose
rustc 1.15.0-nightly (43006fcea 2016-11-15)
binary: rustc
commit-hash: 43006fcea0066a935b657fff9ccef56983cbf56c
commit-date: 2016-11-15
host: x86_64-unknown-linux-gnu
release: 1.15.0-nightly
LLVM version: 3.9

Trying to compile xml-rs-0.3.4 with codegen-units = 2 results in

Running `rustc src/lib.rs --crate-name xml --crate-type lib -C codegen-units=2 -g -C metadata=e99a30aecca1ecbd --out-dir /home/linus/Dokumente/rust-zeug/xml-rs-0.3.4/target/debu
g/deps --emit=dep-info,link -L dependency=/home/linus/Dokumente/rust-zeug/xml-rs-0.3.4/target/debug/deps --extern bitflags=/home/linus/Dokumente/rust-zeug/xml-rs-0.3.4/target/debug/d
eps/libbitflags-0e272044714c8076.rlib`
error: internal compiler error: ../src/librustc_trans/callee.rs:608: expected fn item type, found [closure@src/name.rs:228:34: 228:42]

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: run with `RUST_BACKTRACE=1` for a backtrace

thread 'rustc' panicked at 'Box<Any>', ../src/librustc_errors/lib.rs:424
stack backtrace:
   1:     0x7fdfeea9617a - std::sys::imp::backtrace::tracing::imp::write::h944c02ac40aee2d7
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:42
   2:     0x7fdfeeaa501f - std::panicking::default_hook::{{closure}}::h6875a2976258b020
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:247
   3:     0x7fdfeeaa4bbd - std::panicking::default_hook::h88ffbc5922643264
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:257
   4:     0x7fdfeeaa54c7 - std::panicking::rust_panic_with_hook::ha5aed1dfc0e220e3
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:451
   5:     0x7fdfe75af55a - std::panicking::begin_panic::h264cdc75d51b518b
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:413
   6:     0x7fdfe75c011d - rustc_errors::Handler::bug::h620f7270292f0095
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_errors/lib.rs:424
   7:     0x7fdfebe8df21 - rustc::session::opt_span_bug_fmt::{{closure}}::h4a9b70c3df8b4b3a
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/session/mod.rs:771
   8:     0x7fdfebe8dd3e - rustc::session::opt_span_bug_fmt::h7d83586c6e2c7ae6
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/ty/context.rs:1048
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/session/mod.rs:767
   9:     0x7fdfebe8d9a2 - rustc::session::bug_fmt::he2d2f00a4afa9d1e
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/session/mod.rs:751
  10:     0x7fdfee18a385 - rustc_trans::callee::get_fn::heb6f4992e525f6d0
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_trans/callee.rs:608
  11:     0x7fdfee184d39 - rustc_trans::callee::Callee::trait_method::h8013a3eaf19993ae
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_trans/callee.rs:263
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_trans/callee.rs:150
  12:     0x7fdfee183b4e - rustc_trans::callee::Callee::def::h3b8e0afadf9d53fa
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_trans/callee.rs:96
  13:     0x7fdfee1d746f - rustc_trans::mir::block::<impl rustc_trans::mir::MirContext<'bcx, 'tcx>>::trans_block::h5297e1a9e17de5f2
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_trans/mir/block.rs:411
  14:     0x7fdfee1d40a6 - rustc_trans::mir::trans_mir::h66a6eca5084c2485
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_trans/mir/mod.rs:302
  15:     0x7fdfee1f3889 - rustc_trans::trans_item::TransItem::define::h88bbe0179f734cd1
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_trans/base.rs:1055
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_trans/trans_item.rs:86
  16:     0x7fdfee16fe8b - rustc_trans::base::trans_crate::h6e0b0bf1b66798ce
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_trans/base.rs:1635
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/dep_graph/graph.rs:77
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_trans/base.rs:1633
  17:     0x7fdfeee55571 - rustc_driver::driver::phase_4_translate_to_llvm::h48ed91c172294403
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_driver/driver.rs:1040
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/util/common.rs:38
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_driver/driver.rs:1038
  18:     0x7fdfeee262c0 - rustc_driver::driver::compile_input::{{closure}}::hf13172fc4e5a2f4d
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_driver/driver.rs:206
  19:     0x7fdfeee43b3e - rustc_driver::driver::phase_3_run_analysis_passes::{{closure}}::h97a3a12d948df547
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_driver/driver.rs:994
  20:     0x7fdfeee3ce8d - rustc_driver::driver::phase_3_run_analysis_passes::hb0ad9de18d423e67
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/ty/context.rs:1019
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/thread/local.rs:245
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/ty/context.rs:1016
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/ty/context.rs:1003
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/thread/local.rs:245
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/ty/context.rs:1000
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc/ty/context.rs:789
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_driver/driver.rs:869
  21:     0x7fdfeee24614 - rustc_driver::driver::compile_input::h8e119234b60571d5
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_driver/driver.rs:173
  22:     0x7fdfeee69b30 - rustc_driver::run_compiler::hbdfc4f84e2e0f4b9
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_driver/lib.rs:222
  23:     0x7fdfeed85858 - std::panicking::try::do_call::hf679f17bf3b43b0b
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_driver/lib.rs:1141
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_driver/lib.rs:138
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/librustc_driver/lib.rs:1075
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panic.rs:295
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:356
  24:     0x7fdfeeaafa0a - __rust_maybe_catch_panic
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libpanic_unwind/lib.rs:97
  25:     0x7fdfeeda93e8 - <F as alloc::boxed::FnBox<A>>::call_box::h506fb5d7b8891cd4
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panicking.rs:332
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/panic.rs:351
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/thread/mod.rs:287
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/liballoc/boxed.rs:595
  26:     0x7fdfeeaa3e94 - std::sys::imp::thread::Thread::new::thread_start::h8084b1107992ae5b
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/liballoc/boxed.rs:605
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/sys_common/thread.rs:21
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/obj/../src/libstd/sys/unix/thread.rs:84
  27:     0x7fdfe6d5b453 - start_thread
  28:     0x7fdfee76b7de - __GI___clone
  29:                0x0 - <unknown>

error: Could not compile `xml-rs`.

Caused by:
  process didn't exit successfully: `rustc src/lib.rs --crate-name xml --crate-type lib -C codegen-units=2 -g -C metadata=e99a30aecca1ecbd --out-dir /home/linus/Dokumente/rust-zeug/xml-rs-0.3.4/target/debug/deps --emit=dep-info,link -L dependency=/home/linus/Dokumente/rust-zeug/xml-rs-0.3.4/target/debug/deps --extern bitflags=/home/linus/Dokumente/rust-zeug/xml-rs-0.3.4/target/debug/deps/libbitflags-0e272044714c8076.rlib` (exit code: 101)

codegen-units = 1 successfully compiles, and choosing a different amount results in crashes at different closures. I don't really have the time to find a minimal test case, but it seems to crash at closures in functions that are marked #[inline].

@sfackler sfackler added the I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ label Nov 17, 2016
@michaelwoerister
Copy link
Member

This will hopefully be fixed by #37797 (which is already in the queue).

@brson brson added the regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. label Nov 17, 2016
@michaelwoerister
Copy link
Member

The current nightly should contain a fix. @linuskr, does the error still occur for you?

@linuskr
Copy link
Author

linuskr commented Nov 21, 2016

Appears to be fixed, closing this issue now.

@linuskr linuskr closed this as completed Nov 21, 2016
@michaelwoerister
Copy link
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ regression-from-stable-to-nightly Performance or correctness regression from stable to nightly.
Projects
None yet
Development

No branches or pull requests

4 participants