Skip to content

proc macro server repeatedly crashes on rustc code base #5773

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
jonas-schievink opened this issue Aug 16, 2020 · 5 comments · Fixed by #5651
Closed

proc macro server repeatedly crashes on rustc code base #5773

jonas-schievink opened this issue Aug 16, 2020 · 5 comments · Fixed by #5651
Labels
A-macro macro expansion

Comments

@jonas-schievink
Copy link
Contributor

[ERROR project_model] cyclic dependency cargo-test-support -> cargo
[ERROR project_model] cyclic dependency rustc-std-workspace-core -> core
[ERROR project_model] cyclic dependency wasi -> rustc-std-workspace-alloc
thread 'main' panicked at 'internal error: entered unreachable code', crates/proc_macro_srv/src/proc_macro/bridge/mod.rs:252:5
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1076
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1537
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:218
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:486
  11: std::panicking::begin_panic
  12: <proc_macro_srv::proc_macro::bridge::api_tags::Method as proc_macro_srv::proc_macro::bridge::rpc::DecodeMut<S>>::decode
  13: <proc_macro_srv::proc_macro::bridge::server::Dispatcher<proc_macro_srv::proc_macro::bridge::server::MarkedTypes<S>> as proc_macro_srv::proc_macro::bridge::server::DispatcherTrait>::dispatch
  14: <proc_macro_srv::proc_macro::bridge::closure::Closure<A,R> as core::convert::From<&mut F>>::from::call
  15: proc_macro::bridge::closure::Closure<A,R>::call
             at library/proc_macro/src/bridge/closure.rs:27
  16: proc_macro::bridge::client::TokenStream::into_iter::{{closure}}
             at library/proc_macro/src/bridge/client.rs:244
  17: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::with::{{closure}}
             at library/proc_macro/src/bridge/client.rs:335
  18: proc_macro::bridge::client::BridgeState::with::{{closure}}::{{closure}}
             at library/proc_macro/src/bridge/client.rs:293
  19: proc_macro::bridge::scoped_cell::ScopedCell<T>::replace
             at library/proc_macro/src/bridge/scoped_cell.rs:74
  20: proc_macro::bridge::client::BridgeState::with::{{closure}}
             at library/proc_macro/src/bridge/client.rs:291
  21: std::thread::local::LocalKey<T>::try_with
             at /rustc/db0492ace429cfeb3567e2c04e300be7df9972ff/library/std/src/thread/local.rs:263
  22: std::thread::local::LocalKey<T>::with
             at /rustc/db0492ace429cfeb3567e2c04e300be7df9972ff/library/std/src/thread/local.rs:239
  23: proc_macro::bridge::client::BridgeState::with
             at library/proc_macro/src/bridge/client.rs:290
  24: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::with
             at library/proc_macro/src/bridge/client.rs:328
  25: proc_macro::bridge::client::TokenStream::into_iter
             at library/proc_macro/src/bridge/client.rs:237
  26: proc_macro::token_stream::<impl core::iter::traits::collect::IntoIterator for proc_macro::TokenStream>::into_iter
             at library/proc_macro/src/lib.rs:253
  27: <proc_macro2::imp::TokenStream as core::iter::traits::collect::IntoIterator>::into_iter
             at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.3/src/wrapper.rs:302
  28: proc_macro2::token_stream::<impl core::iter::traits::collect::IntoIterator for proc_macro2::TokenStream>::into_iter
             at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.3/src/lib.rs:1180
  29: syn::buffer::TokenBuffer::inner_new
             at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.11/src/buffer.rs:55
  30: syn::buffer::TokenBuffer::new2
             at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.11/src/buffer.rs:114
  31: <F as syn::parse::Parser>::parse2
             at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.11/src/parse.rs:1145
  32: syn::parse::Parser::parse
             at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.11/src/parse.rs:1101
  33: syn::parse_macro_input::parse
             at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.11/src/parse_macro_input.rs:70
  34: rustc_macros::symbols::symbols
             at src/librustc_macros/src/symbols.rs:82
  35: rustc_macros::symbols
             at src/librustc_macros/src/lib.rs:21
  36: core::ops::function::FnOnce::call_once
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:233
  37: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run::{{closure}}
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:408
  38: proc_macro::bridge::client::run_client::{{closure}}::{{closure}}
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:376
  39: proc_macro::bridge::scoped_cell::ScopedCell<T>::set::{{closure}}
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:79
  40: proc_macro::bridge::scoped_cell::ScopedCell<T>::replace
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:74
  41: proc_macro::bridge::scoped_cell::ScopedCell<T>::set
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:79
  42: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:324
  43: std::thread::local::LocalKey<T>::try_with
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:263
  44: std::thread::local::LocalKey<T>::with
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:239
  45: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:324
  46: proc_macro::bridge::client::run_client::{{closure}}
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:369
  47: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:318
  48: std::panicking::try::do_call
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:348
  49: __rust_try
  50: std::panicking::try
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:325
  51: std::panic::catch_unwind
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:394
  52: proc_macro::bridge::client::run_client
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:368
  53: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run
             at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:408
  54: proc_macro_srv::proc_macro::bridge::server::run_server
  55: proc_macro_srv::dylib::Expander::expand
  56: proc_macro_srv::ProcMacroSrv::expand
  57: proc_macro_srv::cli::run
  58: rust_analyzer::main
  59: std::rt::lang_start::{{closure}}
  60: std::rt::lang_start_internal::{{closure}}
             at src/libstd/rt.rs:52
  61: std::panicking::try::do_call
             at src/libstd/panicking.rs:297
  62: std::panicking::try
             at src/libstd/panicking.rs:274
  63: std::panic::catch_unwind
             at src/libstd/panic.rs:394
  64: std::rt::lang_start_internal
             at src/libstd/rt.rs:51
  65: main
  66: __libc_start_main
  67: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at 'internal error: entered unreachable code', crates/proc_macro_srv/src/proc_macro/bridge/mod.rs:252:5
stack backtrace:
   0:     0x55a06f2713e5 - backtrace::backtrace::libunwind::trace::h396c07d2071b43af
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1:     0x55a06f2713e5 - backtrace::backtrace::trace_unsynchronized::h7aa0e4bb23d9c158
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2:     0x55a06f2713e5 - std::sys_common::backtrace::_print_fmt::hd15ac5d4adcd355b
                               at src/libstd/sys_common/backtrace.rs:78
   3:     0x55a06f2713e5 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hec5354be8ccc3ecc
                               at src/libstd/sys_common/backtrace.rs:59
   4:     0x55a06f29d50c - core::fmt::write::h3d34909eeb4f225b
                               at src/libcore/fmt/mod.rs:1076
   5:     0x55a06f26c4d3 - std::io::Write::write_fmt::h1da287b3de55ed16
                               at src/libstd/io/mod.rs:1537
   6:     0x55a06f273b90 - std::sys_common::backtrace::_print::h4d206838e1ace354
                               at src/libstd/sys_common/backtrace.rs:62
   7:     0x55a06f273b90 - std::sys_common::backtrace::print::h1f778e9940ee5977
                               at src/libstd/sys_common/backtrace.rs:49
   8:     0x55a06f273b90 - std::panicking::default_hook::{{closure}}::h704403a56cbf5783
                               at src/libstd/panicking.rs:198
   9:     0x55a06f2738dc - std::panicking::default_hook::ha4567a10dec4ef8d
                               at src/libstd/panicking.rs:218
  10:     0x55a06f2741c7 - std::panicking::rust_panic_with_hook::h88a1f16ec8a7bb20
                               at src/libstd/panicking.rs:486
  11:     0x55a06e8158fe - std::panicking::begin_panic::hc708afecab491916
  12:     0x55a06e844f4e - <proc_macro_srv::proc_macro::bridge::api_tags::Method as proc_macro_srv::proc_macro::bridge::rpc::DecodeMut<S>>::decode::h23e69070f1bd7a3d
  13:     0x55a06e83f41a - <proc_macro_srv::proc_macro::bridge::server::Dispatcher<proc_macro_srv::proc_macro::bridge::server::MarkedTypes<S>> as proc_macro_srv::proc_macro::bridge::server::DispatcherTrait>::dispatch::h6bd6434850126a4f
  14:     0x55a06e847723 - <proc_macro_srv::proc_macro::bridge::closure::Closure<A,R> as core::convert::From<&mut F>>::from::call::ha885465d97eb2c19
  15:     0x7f1879f76c7c - proc_macro::bridge::closure::Closure<A,R>::call::hd293c0afe8efc85d
                               at library/proc_macro/src/bridge/closure.rs:27
  16:     0x7f1879f76c7c - proc_macro::bridge::client::TokenStream::into_iter::{{closure}}::hd6216f3338ba1331
                               at library/proc_macro/src/bridge/client.rs:244
  17:     0x7f1879f76c7c - proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::with::{{closure}}::h54448fa5f71dd2f0
                               at library/proc_macro/src/bridge/client.rs:335
  18:     0x7f1879f76c7c - proc_macro::bridge::client::BridgeState::with::{{closure}}::{{closure}}::h7a31adefd64dda2f
                               at library/proc_macro/src/bridge/client.rs:293
  19:     0x7f1879f76c7c - proc_macro::bridge::scoped_cell::ScopedCell<T>::replace::hd702e9e26be51fa4
                               at library/proc_macro/src/bridge/scoped_cell.rs:74
  20:     0x7f1879f76c7c - proc_macro::bridge::client::BridgeState::with::{{closure}}::h8175aebe675a9903
                               at library/proc_macro/src/bridge/client.rs:291
  21:     0x7f1879f76c7c - std::thread::local::LocalKey<T>::try_with::hb525df7bdc1c70f9
                               at /rustc/db0492ace429cfeb3567e2c04e300be7df9972ff/library/std/src/thread/local.rs:263
  22:     0x7f1879f76c7c - std::thread::local::LocalKey<T>::with::h8394f87258032720
                               at /rustc/db0492ace429cfeb3567e2c04e300be7df9972ff/library/std/src/thread/local.rs:239
  23:     0x7f1879f76c7c - proc_macro::bridge::client::BridgeState::with::h36159610a173f92d
                               at library/proc_macro/src/bridge/client.rs:290
  24:     0x7f1879f76c7c - proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::with::hdf4fa2264fd49fe9
                               at library/proc_macro/src/bridge/client.rs:328
  25:     0x7f1879f76c7c - proc_macro::bridge::client::TokenStream::into_iter::h3caccf84cec7eba8
                               at library/proc_macro/src/bridge/client.rs:237
  26:     0x7f1879f76c7c - proc_macro::token_stream::<impl core::iter::traits::collect::IntoIterator for proc_macro::TokenStream>::into_iter::h47a5051f9b186f4e
                               at library/proc_macro/src/lib.rs:253
  27:     0x7f1879f45970 - <proc_macro2::imp::TokenStream as core::iter::traits::collect::IntoIterator>::into_iter::ha50076b2424797e0
                               at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.3/src/wrapper.rs:302
  28:     0x7f1879f54606 - proc_macro2::token_stream::<impl core::iter::traits::collect::IntoIterator for proc_macro2::TokenStream>::into_iter::ha74479e0fe367d3c
                               at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.3/src/lib.rs:1180
  29:     0x7f1879ed128f - syn::buffer::TokenBuffer::inner_new::h77b7bf9c200c20e2
                               at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.11/src/buffer.rs:55
  30:     0x7f1879ed1ed4 - syn::buffer::TokenBuffer::new2::h8ebfd7431890cc9a
                               at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.11/src/buffer.rs:114
  31:     0x7f1879cc8361 - <F as syn::parse::Parser>::parse2::h1e79c20156479e2e
                               at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.11/src/parse.rs:1145
  32:     0x7f1879cc82d9 - syn::parse::Parser::parse::h17cb0c8184658234
                               at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.11/src/parse.rs:1101
  33:     0x7f1879ccc288 - syn::parse::hc00581dab6411ffc
                               at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.11/src/lib.rs:840
  34:     0x7f1879cad4cf - rustc_macros::HashStable_Generic::h02921210ce4d6297
                               at /home/jonas/.cargo/registry/src/github.com-1ecc6299db9ec823/synstructure-0.12.1/src/macros.rs:62
  35:     0x7f1879c82d15 - core::ops::function::FnOnce::call_once::ha13649d1f05bbbfc
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:233
  36:     0x7f1879cb9116 - proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run::{{closure}}::hfe3ba1263cfd516d
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:408
  37:     0x7f1879cb87d3 - proc_macro::bridge::client::run_client::{{closure}}::{{closure}}::h07a457559692698b
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:376
  38:     0x7f1879cba067 - proc_macro::bridge::scoped_cell::ScopedCell<T>::set::{{closure}}::hb29f4881a36e80c0
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:79
  39:     0x7f1879cbab6a - proc_macro::bridge::scoped_cell::ScopedCell<T>::replace::h9df8e137d46cd193
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:74
  40:     0x7f1879cba041 - proc_macro::bridge::scoped_cell::ScopedCell<T>::set::hca597c6b36aff516
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:79
  41:     0x7f1879cb8fbd - proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}::hc56a87900adab77b
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:324
  42:     0x7f1879c81e3c - std::thread::local::LocalKey<T>::try_with::h97067019fcee3a27
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:263
  43:     0x7f1879c819e7 - std::thread::local::LocalKey<T>::with::h251e91a8cdefd621
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:239
  44:     0x7f1879caae4c - proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::h1d65422a9577d471
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:324
  45:     0x7f1879cb86c2 - proc_macro::bridge::client::run_client::{{closure}}::he09480805da09296
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:369
  46:     0x7f1879c82582 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9722204bcb1f8b53
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:318
  47:     0x7f1879ca8d82 - std::panicking::try::do_call::h5b1a734e68c19068
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:348
  48:     0x7f1879ca8e3d - __rust_try
  49:     0x7f1879ca8ca0 - std::panicking::try::h5765d0f5ccc9dc2c
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:325
  50:     0x7f1879c825c2 - std::panic::catch_unwind::h75c23354ebb16e8c
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:394
  51:     0x7f1879cb850b - proc_macro::bridge::client::run_client::h1e4a31579b470462
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:368
  52:     0x7f1879cb90cd - proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run::h57bbce04c42a8ba7
                               at /home/jonas/.rustup/toolchains/nightly-2020-07-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:408
  53:     0x55a06e83edda - proc_macro_srv::proc_macro::bridge::server::run_server::h6e836c6ab301bedd
  54:     0x55a06e839ecf - proc_macro_srv::dylib::Expander::expand::h74e3821ee5439abb
  55:     0x55a06e8068b3 - proc_macro_srv::ProcMacroSrv::expand::h15c3a97412005d97
  56:     0x55a06e803826 - proc_macro_srv::cli::run::h6adf573a21eeb7b6
  57:     0x55a06e7f382d - rust_analyzer::main::h8babc78388b8645d
  58:     0x55a06e7d1d53 - std::rt::lang_start::{{closure}}::h827c4cd4549603e2
  59:     0x55a06f274658 - std::rt::lang_start_internal::{{closure}}::h6d21eebfa4beaf70
                               at src/libstd/rt.rs:52
  60:     0x55a06f274658 - std::panicking::try::do_call::h560a27b87db38b9c
                               at src/libstd/panicking.rs:297
  61:     0x55a06f274658 - std::panicking::try::h453d4afd696011f9
                               at src/libstd/panicking.rs:274
  62:     0x55a06f274658 - std::panic::catch_unwind::h211d02671f23030f
                               at src/libstd/panic.rs:394
  63:     0x55a06f274658 - std::rt::lang_start_internal::h464df2bbf46c7e7c
                               at src/libstd/rt.rs:51
  64:     0x55a06e7f5812 - main
  65:     0x7f187d518002 - __libc_start_main
  66:     0x55a06e7bc19e - _start
  67:                0x0 - <unknown>
thread panicked while panicking. aborting.

These two panics repeat indefinitely.

@jonas-schievink jonas-schievink added the A-macro macro expansion label Aug 16, 2020
@bjorn3
Copy link
Member

bjorn3 commented Aug 16, 2020

Which rustc version are you using? If nightly, then #5651 will likely fix this once 1.47.0 becomes stable.

@jonas-schievink
Copy link
Contributor Author

I was using rustc 1.47.0-nightly (db0492ace 2020-07-29), so that seems to be it, thanks!

We should probably handle these cases better than dumping core multiple times per second and printing thousands of lines to stderr though.

@bjorn3
Copy link
Member

bjorn3 commented Aug 16, 2020

The rustc metadata in the .rustc section starts with the rustc version. The format of this hasn't changed since it's introduction I think, as it is meant to give a nice error message when trying to use a crate compiled with a different rustc version. We could check it against the version for which the proc macro server is made, or even use it to dynamically adapt the proc macro server for different versions of rustc.

@Michael-F-Bryan
Copy link
Contributor

I believe I encountered this same issue while rearranging a crate from having a top-level src/main.rs to a top-level src/lib.rs and all executable code in src/bin/main.rs.

The terminal popped up and dumped several backtraces while I was midway through the operation. At the time I had an empty src/bin/main.rs, half the original code in src/lib.rs and the rest of the code still in src/main.rs.

$ rustc --version --verbose
rustc 1.48.0-nightly (5099914a1 2020-09-08)
binary: rustc
commit-hash: 5099914a16a215794ad243df0cc7a05d91d168e0
commit-date: 2020-09-08
host: x86_64-pc-windows-msvc
release: 1.48.0-nightly
LLVM version: 11.0

Rust Analyzer version: nightly (7ba578a)

Full backtrace and rust-analyzer output
thread 'main' panicked at 'internal error: entered unreachable code', crates\proc_macro_srv\src\proc_macro\bridge\mod.rs:252:5
stack backtrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: <unknown>
  10: proc_macro::bridge::closure::Closure::call
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\closure.rs:27
  11: proc_macro::bridge::client::{{impl}}::into_iter::{{closure}}
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:244
  12: proc_macro::bridge::client::{{impl}}::with::{{closure}}
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:297
  13: proc_macro::bridge::client::{{impl}}::with::{{closure}}::{{closure}}
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:293
  14: proc_macro::bridge::scoped_cell::ScopedCell::replace
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\scoped_cell.rs:74
  15: proc_macro::bridge::client::{{impl}}::with::{{closure}}
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:291
  16: std::thread::local::LocalKey::try_with
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\library\std\src\thread\local.rs:271
  17: std::thread::local::LocalKey::with
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\library\std\src\thread\local.rs:247
  18: proc_macro::bridge::client::BridgeState::with
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:290
  19: proc_macro::bridge::Bridge::with
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:329
  20: proc_macro::bridge::client::TokenStream::into_iter
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:237
  21: proc_macro::token_stream::{{impl}}::into_iter
             at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\lib.rs:252
  22: proc_macro2::imp::{{impl}}::into_iter
             at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\proc-macro2-1.0.20\src\wrapper.rs:280
  23: proc_macro2::token_stream::{{impl}}::into_iter
             at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\proc-macro2-1.0.20\src\lib.rs:1221
  24: syn::buffer::TokenBuffer::inner_new
             at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\syn-1.0.40\src\buffer.rs:55
  25: syn::buffer::TokenBuffer::new2
             at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\syn-1.0.40\src\buffer.rs:114
  26: syn::parse::{{impl}}::parse2<fn(syn::parse::ParseBuffer*) -> core::result::Result<syn::derive::DeriveInput, syn::error::Error>,syn::derive::DeriveInput>
             at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\syn-1.0.40\src\parse.rs:1186
  27: syn::parse::Parser::parse<fn(syn::parse::ParseBuffer*) -> core::result::Result<syn::derive::DeriveInput, syn::error::Error>>
             at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\syn-1.0.40\src\parse.rs:1140
  28: syn::parse<syn::derive::DeriveInput>
             at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\syn-1.0.40\src\lib.rs:877
  29: derive_more::display_derive
             at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\derive_more-0.99.9\src\lib.rs:275
  30: core::ops::function::FnOnce::call_once<fn(proc_macro::TokenStream) -> proc_macro::TokenStream,tuple<proc_macro::TokenStream>>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:227
  31: proc_macro::bridge::client::{{impl}}::expand1::run::{{closure}}<fn(proc_macro::TokenStream) -> proc_macro::TokenStream>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:409
  32: proc_macro::bridge::client::run_client::{{closure}}::{{closure}}<proc_macro::bridge::client::TokenStream,proc_macro::bridge::client::TokenStream,closure-0>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:377
  33: proc_macro::bridge::scoped_cell::{{impl}}::set::{{closure}}<proc_macro::bridge::client::BridgeStateL,tuple<>,closure-0>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\scoped_cell.rs:79
  34: proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>::replace<proc_macro::bridge::client::BridgeStateL,tuple<>,closure-0>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\scoped_cell.rs:74
  35: proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>::set<proc_macro::bridge::client::BridgeStateL,tuple<>,closure-0>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\scoped_cell.rs:79
  36: proc_macro::bridge::client::{{impl}}::enter::{{closure}}<tuple<>,closure-0>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:325
  37: std::thread::local::LocalKey<proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>>::try_with<proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>,closure-1,tuple<>>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\thread\local.rs:271
  38: std::thread::local::LocalKey<proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>>::with<proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>,closure-1,tuple<>>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\thread\local.rs:247
  39: proc_macro::bridge::Bridge::enter<tuple<>,closure-0>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:325
  40: proc_macro::bridge::client::run_client::{{closure}}<proc_macro::bridge::client::TokenStream,proc_macro::bridge::client::TokenStream,closure-0>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:370
  41: std::panic::{{impl}}::call_once<tuple<>,closure-0>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:308
  42: std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,tuple<>>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:381
  43: derive_more::not_like::enum_output_type_and_content::{{closure}}
  44: std::panicking::try<tuple<>,std::panic::AssertUnwindSafe<closure-0>>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:345
  45: std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,tuple<>>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:382
  46: proc_macro::bridge::client::run_client<proc_macro::bridge::client::TokenStream,proc_macro::bridge::client::TokenStream,closure-0>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:369
  47: proc_macro::bridge::client::{{impl}}::expand1::run<fn(proc_macro::TokenStream) -> proc_macro::TokenStream>
             at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:409
  48: <unknown>
  49: <unknown>
  50: <unknown>
  51: <unknown>
  52: <unknown>
  53: <unknown>
  54: <unknown>
  55: <unknown>
  56: BaseThreadInitThunk
  57: RtlUserThreadStart
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

thread 'main' panicked at 'internal error: entered unreachable code', crates\proc_macro_srv\src\proc_macro\bridge\mod.rs:252:5
stack backtrace:
   0:     0x7ff6c2beb4ee - <unknown>
   1:     0x7ff6c2c0452c - <unknown>
   2:     0x7ff6c2be4e93 - <unknown>
   3:     0x7ff6c2bee6ab - <unknown>
   4:     0x7ff6c2bee2f8 - <unknown>
   5:     0x7ff6c2beee7f - <unknown>
   6:     0x7ff6c2c2c82d - <unknown>
   7:     0x7ff6c2afdd7b - <unknown>
   8:     0x7ff6c2c3d7ed - <unknown>
   9:     0x7ff6c2afc4f4 - <unknown>
  10:     0x7ffdb72daabe - proc_macro::bridge::closure::Closure::call
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\closure.rs:27
  11:     0x7ffdb72daabe - proc_macro::bridge::client::{{impl}}::into_iter::{{closure}}
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:244
  12:     0x7ffdb72daabe - proc_macro::bridge::client::{{impl}}::with::{{closure}}
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:297
  13:     0x7ffdb72daabe - proc_macro::bridge::client::{{impl}}::with::{{closure}}::{{closure}}
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:293
  14:     0x7ffdb72daabe - proc_macro::bridge::scoped_cell::ScopedCell::replace
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\scoped_cell.rs:74
  15:     0x7ffdb72daabe - proc_macro::bridge::client::{{impl}}::with::{{closure}}
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:291
  16:     0x7ffdb72daabe - std::thread::local::LocalKey::try_with
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\library\std\src\thread\local.rs:271
  17:     0x7ffdb72daabe - std::thread::local::LocalKey::with
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\library\std\src\thread\local.rs:247
  18:     0x7ffdb72daabe - proc_macro::bridge::client::BridgeState::with
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:290
  19:     0x7ffdb72daabe - proc_macro::bridge::Bridge::with
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:329
  20:     0x7ffdb72daabe - proc_macro::bridge::client::TokenStream::into_iter
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\bridge\client.rs:237
  21:     0x7ffdb72daabe - proc_macro::token_stream::{{impl}}::into_iter
                               at /rustc/5099914a16a215794ad243df0cc7a05d91d168e0\/library\proc_macro\src\lib.rs:252
  22:     0x7ffdb72bdcfc - proc_macro2::imp::{{impl}}::into_iter
                               at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\proc-macro2-1.0.20\src\wrapper.rs:280
  23:     0x7ffdb72a57d1 - proc_macro2::token_stream::{{impl}}::into_iter
                               at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\proc-macro2-1.0.20\src\lib.rs:1221
  24:     0x7ffdb716ba91 - syn::buffer::TokenBuffer::inner_new
                               at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\syn-1.0.40\src\buffer.rs:55
  25:     0x7ffdb716c572 - syn::buffer::TokenBuffer::new2
                               at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\syn-1.0.40\src\buffer.rs:114
  26:     0x7ffdb709eb6e - syn::parse::{{impl}}::parse2<fn(syn::parse::ParseBuffer*) -> core::result::Result<syn::derive::DeriveInput, syn::error::Error>,syn::derive::DeriveInput>
                               at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\syn-1.0.40\src\parse.rs:1186
  27:     0x7ffdb709eac6 - syn::parse::Parser::parse<fn(syn::parse::ParseBuffer*) -> core::result::Result<syn::derive::DeriveInput, syn::error::Error>>
                               at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\syn-1.0.40\src\parse.rs:1140
  28:     0x7ffdb709b549 - syn::parse<syn::derive::DeriveInput>
                               at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\syn-1.0.40\src\lib.rs:877
  29:     0x7ffdb709605c - failure_derive::Fail
                               at C:\Users\mbryan\.cargo\registry\src\github.com-1ecc6299db9ec823\synstructure-0.12.4\src\macros.rs:97
  30:     0x7ffdb70a3a37 - core::ops::function::FnOnce::call_once<fn(proc_macro::TokenStream) -> proc_macro::TokenStream,tuple<proc_macro::TokenStream>>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:227
  31:     0x7ffdb70a30a6 - proc_macro::bridge::client::{{impl}}::expand1::run::{{closure}}<fn(proc_macro::TokenStream) -> proc_macro::TokenStream>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:409
  32:     0x7ffdb70a26e0 - proc_macro::bridge::client::run_client::{{closure}}::{{closure}}<proc_macro::bridge::client::TokenStream,proc_macro::bridge::client::TokenStream,closure-0>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:377
  33:     0x7ffdb709d608 - proc_macro::bridge::scoped_cell::{{impl}}::set::{{closure}}<proc_macro::bridge::client::BridgeStateL,tuple<>,closure-0>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\scoped_cell.rs:79
  34:     0x7ffdb709dcf2 - proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>::replace<proc_macro::bridge::client::BridgeStateL,tuple<>,closure-0>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\scoped_cell.rs:74
  35:     0x7ffdb709d5e5 - proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>::set<proc_macro::bridge::client::BridgeStateL,tuple<>,closure-0>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\scoped_cell.rs:79
  36:     0x7ffdb70a2e7c - proc_macro::bridge::client::{{impl}}::enter::{{closure}}<tuple<>,closure-0>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:325
  37:     0x7ffdb709fbe8 - std::thread::local::LocalKey<proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>>::try_with<proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>,closure-1,tuple<>>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\thread\local.rs:271
  38:     0x7ffdb709f7ee - std::thread::local::LocalKey<proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>>::with<proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>,closure-1,tuple<>>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\thread\local.rs:247
  39:     0x7ffdb709e8dd - proc_macro::bridge::Bridge::enter<tuple<>,closure-0>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:325
  40:     0x7ffdb70a254e - proc_macro::bridge::client::run_client::{{closure}}<proc_macro::bridge::client::TokenStream,proc_macro::bridge::client::TokenStream,closure-0>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:370
  41:     0x7ffdb709e7e6 - std::panic::{{impl}}::call_once<tuple<>,closure-0>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:308
  42:     0x7ffdb70a3460 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,tuple<>>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:381
  43:     0x7ffdb70a4a07 - alloc::boxed::{{impl}}::len<IterTrait<syn::attr::NestedMeta>>
  44:     0x7ffdb70a337a - std::panicking::try<tuple<>,std::panic::AssertUnwindSafe<closure-0>>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:345
  45:     0x7ffdb709e966 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,tuple<>>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:382
  46:     0x7ffdb70a2433 - proc_macro::bridge::client::run_client<proc_macro::bridge::client::TokenStream,proc_macro::bridge::client::TokenStream,closure-0>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:369
  47:     0x7ffdb70a3063 - proc_macro::bridge::client::{{impl}}::expand1::run<fn(proc_macro::TokenStream) -> proc_macro::TokenStream>
                               at C:\Users\mbryan\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro\src\bridge\client.rs:409
  48:     0x7ff6c2c3d4c1 - <unknown>
  49:     0x7ff6c2c27a27 - <unknown>
  50:     0x7ff6c2afd38e - <unknown>
  51:     0x7ff6c2ae15fe - <unknown>
  52:     0x7ff6c2add2d6 - <unknown>
  53:     0x7ff6c2bef186 - <unknown>
  54:     0x7ff6c2ae4ee7 - <unknown>
  55:     0x7ff6c36b1cb0 - <unknown>
  56:     0x7ffdf1a77bd4 - BaseThreadInitThunk
  57:     0x7ffdf2f8ce51 - RtlUserThreadStart
thread panicked while panicking. aborting.

backtraces.txt

Interestingly, the second backtrace ends with "thread panicked while panicking. aborting" so it looks like this bug was able to bring down the whole rust-analyzer process.

@bjorn3
Copy link
Member

bjorn3 commented Sep 15, 2020

Interestingly, the second backtrace ends with "thread panicked while panicking. aborting" so it looks like this bug was able to bring down the whole rust-analyzer process.

That is only the proc-macro server process.

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

Successfully merging a pull request may close this issue.

3 participants