Skip to content

proc macro server crashed #6755

Closed
Closed
@Sympatron

Description

@Sympatron

When loading atsamd-rs BSPs, rust-analyzer crashes.
I don't have the VSCode Rust extension installed.

Steps to reproduce:

  1. VSCode Version 1.15.1
  2. Rust-Analyzer Version 0.2.408
  3. git clone https://github.com/atsamd-rs/atsamd.git
  4. code atsamd/boards/itsybitsy_m4

settings.json:

{
    "rust-analyzer.procMacro.enable": true,
    "rust-analyzer.cargo.loadOutDirsFromCheck": true,
    "window.zoomLevel": 0,
    "explorer.confirmDragAndDrop": false,
    "workbench.tree.indent": 24,
    "workbench.tree.renderIndentGuides": "always",
    "rust-analyzer.checkOnSave.command": "clippy",
    "files.eol": "\r\n",
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "matklad.rust-analyzer",
    "rust-analyzer.updates.channel": "nightly",
    "rust-analyzer.checkOnSave.allTargets": false,
}

Stack trace:

thread '<unnamed>' panicked at 'no value set for FileTextQuery(FileId(0))', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\salsa-0.16.0\src\input.rs:104:32
stack backtrace:
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:256:5
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at 'use-after-free in `proc_macro` handle', crates\proc_macro_srv\src\proc_macro\bridge\handle.rs:38:30
stack backtrace:
   0:     0x7ff7015754f9 - <unknown>
   1:     0x7ff70158fcbb - <unknown>
   2:     0x7ff70156e458 - <unknown>
   3:     0x7ff701578544 - <unknown>
   4:     0x7ff701578128 - <unknown>
   5:     0x7ff701578dff - <unknown>
   6:     0x7ff701578965 - <unknown>
   7:     0x7ff701575ddf - <unknown>
   8:     0x7ff701578919 - <unknown>
   9:     0x7ff70158d720 - <unknown>
  10:     0x7ff70158d4c2 - <unknown>
  11:     0x7ff701a6bb5a - <unknown>
  12:     0x7ff7015a4064 - <unknown>
  13:     0x7ff9be21abb7 - proc_macro::bridge::closure::Closure::call
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\closure.rs:27
  14:     0x7ff9be21abb7 - proc_macro::bridge::client::{{impl}}::drop::{{closure}}
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\client.rs:243
  15:     0x7ff9be219853 - proc_macro::bridge::scoped_cell::ScopedCell::replace
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\scoped_cell.rs:74
  16:     0x7ff9be219853 - proc_macro::bridge::client::{{impl}}::with::{{closure}}
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\client.rs:290
  17:     0x7ff9be219853 - std::thread::local::LocalKey::try_with
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\src\libstd\thread\local.rs:263
  18:     0x7ff9be219853 - std::thread::local::LocalKey::with
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\src\libstd\thread\local.rs:239
  19:     0x7ff9be219853 - proc_macro::bridge::client::BridgeState::with
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\client.rs:289
  20:     0x7ff9be219853 - proc_macro::bridge::Bridge::with
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\client.rs:327
  21:     0x7ff9be219853 - proc_macro::bridge::client::TokenStream::drop
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\client.rs:236
  22:     0x7ff9be219853 - proc_macro::bridge::client::{{impl}}::drop
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\client.rs:55
  23:     0x7ff9be1e87de - core::ptr::drop_in_place<proc_macro::bridge::client::TokenStream>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\ptr\mod.rs:184
  24:     0x7ff9be1e800e - core::ptr::drop_in_place<proc_macro::TokenStream>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\ptr\mod.rs:184
  25:     0x7ff9be20489a - paste::expand
                               at C:\Users\Sympatron\.cargo\registry\src\github.com-1ecc6299db9ec823\paste-1.0.3\src\lib.rs:256
  26:     0x7ff9ead61030 - <unknown>
  27:     0x7ff9ead64a52 - is_exception_typeof
  28:     0x7ff9ead6e7a4 - _C_specific_handler
  29:     0x7ff9ead63cc8 - is_exception_typeof
  30:     0x7ff9ead6f0d1 - _CxxFrameHandler3
  31:     0x7ffa0b98124f - _chkstk
  32:     0x7ffa0b8fd9b2 - RtlUnwindEx
  33:     0x7ff9ead6ec62 - _C_specific_handler
  34:     0x7ff9ead62955 - is_exception_typeof
  35:     0x7ff9ead62d81 - is_exception_typeof
  36:     0x7ff9ead63dc4 - is_exception_typeof
  37:     0x7ff9ead6f0d1 - _CxxFrameHandler3
  38:     0x7ffa0b9811cf - _chkstk
  39:     0x7ffa0b94a209 - RtlRaiseException
  40:     0x7ffa0b949fc3 - RtlRaiseException
  41:     0x7ffa092aa799 - RaiseException
  42:     0x7ff9ead66220 - CxxThrowException
  43:     0x7ff701a5e151 - <unknown>
  44:     0x7ff701a5e0d9 - <unknown>
  45:     0x7ff701579008 - <unknown>
  46:     0x7ff701578eb6 - <unknown>
  47:     0x7ff70147d8f4 - <unknown>
  48:     0x7ff70147d88f - <unknown>
  49:     0x7ff7015added - <unknown>
  50:     0x7ff7015a4b21 - <unknown>
  51:     0x7ff701a64770 - <unknown>
  52:     0x7ff7015a4064 - <unknown>
  53:     0x7ff9be209647 - proc_macro::bridge::scoped_cell::ScopedCell::replace
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\scoped_cell.rs:74
  54:     0x7ff9be209647 - proc_macro::bridge::client::{{impl}}::with::{{closure}}
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\client.rs:290
  55:     0x7ff9be209647 - std::thread::local::LocalKey::try_with
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\src\libstd\thread\local.rs:263
  56:     0x7ff9be209647 - std::thread::local::LocalKey::with
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\src\libstd\thread\local.rs:239
  57:     0x7ff9be209647 - proc_macro::bridge::client::BridgeState::with
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\client.rs:289
  58:     0x7ff9be209647 - proc_macro::bridge::Bridge::with
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\client.rs:327
  59:     0x7ff9be209647 - proc_macro::bridge::client::TokenStream::new
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\bridge\client.rs:236
  60:     0x7ff9be209647 - proc_macro::TokenStream::new
                               at /rustc/04488afe34512aa4c33566eb16d8c912a3ae04f9\/src\libproc_macro\lib.rs:108
  61:     0x7ff9be203483 - paste::expand
                               at C:\Users\Sympatron\.cargo\registry\src\github.com-1ecc6299db9ec823\paste-1.0.3\src\lib.rs:176
  62:     0x7ff9be2032bb - paste::paste
                               at C:\Users\Sympatron\.cargo\registry\src\github.com-1ecc6299db9ec823\paste-1.0.3\src\lib.rs:157
  63:     0x7ff9be203391 - paste::item
                               at C:\Users\Sympatron\.cargo\registry\src\github.com-1ecc6299db9ec823\paste-1.0.3\src\lib.rs:166
  64:     0x7ff9be1e7998 - core::ops::function::FnOnce::call_once<fn(proc_macro::TokenStream) -> proc_macro::TokenStream,tuple<proc_macro::TokenStream>>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\ops\function.rs:233
  65:     0x7ff9be1e3a76 - proc_macro::bridge::client::{{impl}}::expand1::run::{{closure}}<fn(proc_macro::TokenStream) -> proc_macro::TokenStream>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libproc_macro\bridge\client.rs:407
  66:     0x7ff9be1e2fe0 - proc_macro::bridge::client::run_client::{{closure}}::{{closure}}<proc_macro::bridge::client::TokenStream,proc_macro::bridge::client::TokenStream,closure-0>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libproc_macro\bridge\client.rs:375
  67:     0x7ff9be1e2218 - proc_macro::bridge::scoped_cell::{{impl}}::set::{{closure}}<proc_macro::bridge::client::BridgeStateL,tuple<>,closure-0>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libproc_macro\bridge\scoped_cell.rs:79
  68:     0x7ff9be1e28e2 - proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>::replace<proc_macro::bridge::client::BridgeStateL,tuple<>,closure-0>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libproc_macro\bridge\scoped_cell.rs:74
  69:     0x7ff9be1e21f5 - proc_macro::bridge::scoped_cell::ScopedCell<proc_macro::bridge::client::BridgeStateL>::set<proc_macro::bridge::client::BridgeStateL,tuple<>,closure-0>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libproc_macro\bridge\scoped_cell.rs:79
  70:     0x7ff9be1e391c - proc_macro::bridge::client::{{impl}}::enter::{{closure}}<tuple<>,closure-0>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libproc_macro\bridge\client.rs:323
  71:     0x7ff9be1e55dc - 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\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\thread\local.rs:263
  72:     0x7ff9be1e50ee - 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\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\thread\local.rs:239
  73:     0x7ff9be1e3798 - proc_macro::bridge::Bridge::enter<tuple<>,closure-0>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libproc_macro\bridge\client.rs:323
  74:     0x7ff9be1e2f05 - proc_macro::bridge::client::run_client::{{closure}}<proc_macro::bridge::client::TokenStream,proc_macro::bridge::client::TokenStream,closure-0>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libproc_macro\bridge\client.rs:368
  75:     0x7ff9be1e1266 - std::panic::{{impl}}::call_once<tuple<>,closure-0>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panic.rs:318
  76:     0x7ff9be1e5b30 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,tuple<>>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panicking.rs:348
  77:     0x7ff9be2062e7 - paste::is_flat_group::{{impl}}::eq
  78:     0x7ff9be1e599a - std::panicking::try<tuple<>,std::panic::AssertUnwindSafe<closure-0>>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panicking.rs:325
  79:     0x7ff9be1e5056 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,tuple<>>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panic.rs:394
  80:     0x7ff9be1e2d40 - proc_macro::bridge::client::run_client<proc_macro::bridge::client::TokenStream,proc_macro::bridge::client::TokenStream,closure-0>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libproc_macro\bridge\client.rs:367
  81:     0x7ff9be1e3a2d - proc_macro::bridge::client::{{impl}}::expand1::run<fn(proc_macro::TokenStream) -> proc_macro::TokenStream>
                               at C:\Users\Sympatron\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libproc_macro\bridge\client.rs:407
  82:     0x7ff701a64562 - <unknown>
  83:     0x7ff701a62ec7 - <unknown>
  84:     0x7ff7015a4109 - <unknown>
  85:     0x7ff701481aca - <unknown>
  86:     0x7ff70144b562 - <unknown>
  87:     0x7ff7014622e6 - <unknown>
  88:     0x7ff70146261c - <unknown>
  89:     0x7ff701579133 - <unknown>
  90:     0x7ff70144e8a7 - <unknown>
  91:     0x7ff702171460 - <unknown>
  92:     0x7ffa099a7bd4 - BaseThreadInitThunk
  93:     0x7ffa0b94ce51 - RtlUserThreadStart
thread panicked while panicking. aborting.
[ERROR proc_macro_api::process] proc macro server crashed, server process state: Ok(Some(ExitStatus(ExitStatus(3221225501))))

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-macromacro expansion

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions