Skip to content

ICE on the quicksilver library #5244

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
vorner opened this issue Feb 29, 2020 · 1 comment
Closed

ICE on the quicksilver library #5244

vorner opened this issue Feb 29, 2020 · 1 comment

Comments

@vorner
Copy link
Contributor

vorner commented Feb 29, 2020

Hello

I've hit an ICE on the quicksilver library when running clippy-nightly on it (version clippy 0.0.212 (fc5d0cc 2020-02-24)). It was first discovered by CI on my pull request (ryanisaacg/quicksilver#583) on MacOS, but I've reproduced it on Linux on master (commit f9c070e2a020f008f8ef10434da75a2e39535946) of the same repository. What I gather from these is:

  • It's not platform specific.
  • It's a relatively new regression on clippy (otherwise it wouldn't be possible to merge to master recently because of CI).
  • (Unfortunately) it's not something I've introduced in the PR, so I don't know which part of the code triggers it.
$ cargo +nightly clippy
    Checking quicksilver v0.4.0-alpha0.2 (/home/vorner/prog/quicksilver)
error: internal compiler error: src/librustc_mir/dataflow/generic/engine.rs:315: Switch on discriminant of non-ADT

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:881:9
stack backtrace:
   0:     0x7fde1c3ac024 - backtrace::backtrace::libunwind::trace::hb827f4c466253f29
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.44/src/backtrace/libunwind.rs:86
   1:     0x7fde1c3ac024 - backtrace::backtrace::trace_unsynchronized::h9d5f4880ced35a0e
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.44/src/backtrace/mod.rs:66
   2:     0x7fde1c3ac024 - std::sys_common::backtrace::_print_fmt::hb1cddf0dbc858d5e
                               at src/libstd/sys_common/backtrace.rs:78
   3:     0x7fde1c3ac024 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h418b05c8466523f7
                               at src/libstd/sys_common/backtrace.rs:59
   4:     0x7fde1c3e52ac - core::fmt::write::hd7c4c3ef1c519f9c
                               at src/libcore/fmt/mod.rs:1053
   5:     0x7fde1c39dbf7 - std::io::Write::write_fmt::hea7ee7c2b0b56640
                               at src/libstd/io/mod.rs:1428
   6:     0x7fde1c3b0d15 - std::sys_common::backtrace::_print::hd48ee8e8dcfec814
                               at src/libstd/sys_common/backtrace.rs:62
   7:     0x7fde1c3b0d15 - std::sys_common::backtrace::print::hd560d375c3dd4d06
                               at src/libstd/sys_common/backtrace.rs:49
   8:     0x7fde1c3b0d15 - std::panicking::default_hook::{{closure}}::hbd5f2fc476d36ee7
                               at src/libstd/panicking.rs:204
   9:     0x7fde1c3b0a57 - std::panicking::default_hook::h04bf70bf3772f200
                               at src/libstd/panicking.rs:224
  10:     0x556f3eab1121 - clippy_driver::report_clippy_ice::h70f7057011ddbaa5
  11:     0x7fde1c3b1445 - std::panicking::rust_panic_with_hook::h98c3e5a93afaee15
                               at src/libstd/panicking.rs:474
  12:     0x7fde1f179ea3 - std::panicking::begin_panic::h58be6da30906897f
  13:     0x7fde1f1b5e80 - rustc_errors::HandlerInner::bug::h9a610a154219a6a0
  14:     0x7fde1f1b4ce0 - rustc_errors::Handler::bug::hb048846a869b0860
  15:     0x7fde1eea5fd9 - rustc::util::bug::opt_span_bug_fmt::{{closure}}::h0139aab91a8fd207
  16:     0x7fde1ee9f84b - rustc::ty::context::tls::with_opt::{{closure}}::hc44422f0c4b2e05d
  17:     0x7fde1ee9f7f2 - rustc::ty::context::tls::with_opt::h318453315d40d87e
  18:     0x7fde1eea5ee8 - rustc::util::bug::opt_span_bug_fmt::hb644edb52b614ddc
  19:     0x7fde1eea5e52 - rustc::util::bug::bug_fmt::ha9c9bce517bc984b
  20:     0x556f3ebc7ee4 - rustc_mir::dataflow::generic::engine::Engine<A>::iterate_to_fixpoint::h42e925aa7ac16cba
  21:     0x556f3eae2e0e - <clippy_lints::redundant_clone::RedundantClone as rustc_lint::passes::LateLintPass>::check_fn::h8a3a2b65a1044250
  22:     0x7fde1e557ea2 - <rustc_lint::late::LateLintPassObjects as rustc_lint::passes::LateLintPass>::check_fn::hbc95614e8c8705aa
  23:     0x7fde1cc22ad6 - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_fn::hf388c68073d168ad
  24:     0x7fde1cbe5d6b - rustc_hir::intravisit::walk_expr::hc50689d3fbb81a55
  25:     0x7fde1cc2175d - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr::h064f363b716a9170
  26:     0x7fde1cbe588f - rustc_hir::intravisit::walk_expr::hc50689d3fbb81a55
  27:     0x7fde1cc2175d - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr::h064f363b716a9170
  28:     0x7fde1cbe3ea4 - rustc_hir::intravisit::walk_fn::hb1ab6a429c347b95
  29:     0x7fde1cc22b28 - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_fn::hf388c68073d168ad
  30:     0x7fde1cbe151b - rustc_hir::intravisit::walk_impl_item::h694704945c920509
  31:     0x7fde1cc23d7a - rustc_hir::intravisit::Visitor::visit_nested_impl_item::h2c06a584ff95e81e
  32:     0x7fde1cbe7c60 - rustc_hir::intravisit::walk_item::hc287e2ca1d181213
  33:     0x7fde1cc236f0 - rustc_hir::intravisit::Visitor::visit_nested_item::hc262e27f3402b63a
  34:     0x7fde1cbe72fe - rustc_hir::intravisit::walk_item::hc287e2ca1d181213
  35:     0x7fde1cc236f0 - rustc_hir::intravisit::Visitor::visit_nested_item::hc262e27f3402b63a
  36:     0x7fde1cbe72fe - rustc_hir::intravisit::walk_item::hc287e2ca1d181213
  37:     0x7fde1cc236f0 - rustc_hir::intravisit::Visitor::visit_nested_item::hc262e27f3402b63a
  38:     0x7fde1cbe051e - rustc_hir::intravisit::walk_crate::he0129b4584847e5e
  39:     0x7fde1cbfc9fd - rustc_lint::late::late_lint_pass_crate::hf6c7eeacd17818aa
  40:     0x7fde1cbfebdb - rustc_session::utils::<impl rustc_session::session::Session>::time::h4489ea2fab066dd6
  41:     0x7fde1c3c3037 - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:86
  42:     0x7fde1cc4d4b3 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hf801a16fdd1855fd
  43:     0x7fde1c3c3037 - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:86
  44:     0x7fde1cc024ea - rustc_session::utils::<impl rustc_session::session::Session>::time::hffe079e22d8b4c1f
  45:     0x7fde1cc914d6 - rustc_interface::passes::analysis::h63d05e45aafa63ee
  46:     0x7fde1ca16996 - rustc::ty::query::__query_compute::analysis::h60e0f763171ec6a8
  47:     0x7fde1ca80431 - rustc::dep_graph::graph::DepGraph::with_task_impl::hbc0032d204a86012
  48:     0x7fde1ca5785a - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::hc8a26b5b4e3eb76d
  49:     0x7fde1ca8e737 - rustc::ty::context::tls::enter_global::h399f42f54f02e409
  50:     0x7fde1ca60544 - rustc_interface::interface::run_compiler_in_existing_thread_pool::hd42a83f4abcbfb40
  51:     0x7fde1ca0e53f - syntax::attr::with_globals::hd9a92937c7834975
  52:     0x7fde1ca12013 - std::sys_common::backtrace::__rust_begin_short_backtrace::h45dd6de2ed720c8b
  53:     0x7fde1c3c3037 - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:86
  54:     0x7fde1ca62686 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hfcc630e86458e868
  55:     0x7fde1c38e1ff - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::ha0137aa2056446ec
                               at /rustc/0eb878d2aa6e3a1cb315f3f328681b26bb4bffdb/src/liballoc/boxed.rs:1017
  56:     0x7fde1c3c1940 - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h335d32c504b6aa26
                               at /rustc/0eb878d2aa6e3a1cb315f3f328681b26bb4bffdb/src/liballoc/boxed.rs:1017
  57:     0x7fde1c3c1940 - std::sys_common::thread::start_thread::h6e1133a4f62ec9db
                               at src/libstd/sys_common/thread.rs:13
  58:     0x7fde1c3c1940 - std::sys::unix::thread::Thread::new::thread_start::h0a1909c3d640ef9b
                               at src/libstd/sys/unix/thread.rs:80
  59:     0x7fde1c2d82d7 - start_thread
                               at /var/tmp/portage/sys-libs/glibc-2.30-r4/work/glibc-2.30/nptl/pthread_create.c:479
  60:     0x7fde1c1e4d9f - clone
  61:                0x0 - <unknown>

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

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new

note: Clippy version: clippy 0.0.212 (fc5d0cc 2020-02-24)

query stack during panic:
#0 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error

Is the repository this happens on + the full backtrace good enough so someone would know what happens, or should I try some more investigation (I might find some time to dig further, but I don't really know in which direction)?

@JohnTitor
Copy link
Member

Duplicate of #5238
And fix is already submitted on rust-lang/rust, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants