Skip to content

Test 'tests::test_derive_serialize_proc_macro' panics with STATUS_ILLEGAL_INSTRUCTION #4866

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
zacps opened this issue Jun 13, 2020 · 3 comments · Fixed by #4676
Closed

Test 'tests::test_derive_serialize_proc_macro' panics with STATUS_ILLEGAL_INSTRUCTION #4866

zacps opened this issue Jun 13, 2020 · 3 comments · Fixed by #4676

Comments

@zacps
Copy link
Contributor

zacps commented Jun 13, 2020

Running this test triggers a panic in the panic handler which uses intrinsics::abort() to kill the process with an illegal instruction. I don't know what causes either panic.

Windows 10 1909 Build 18363.900

CPU: i5 4690k

Commit: b56ad14

Cargo: cargo 1.45.0-nightly (9fcb8c1d2 2020-05-25) & (40ebd5220 2020-06-01)

Rustc: rustc 1.45.0-nightly (47c3158c3 2020-06-04) & (feb3536eb 2020-06-09)


cargo test -- --nocapture
Running C:\Users\Zac\Programming\rust\rust-analyzer\target\debug\deps\ra_proc_macro_srv-0a34b923f611cf91.exe    

running 4 tests
test rustc_server::tests::test_rustc_server_literals ... ok
test tests::test_derive_proc_macro_list ... ok
thread 'tests::test_derive_serialize_proc_macro_failed' panicked at 'internal error: entered unreachable code', crates\ra_proc_macro_srv\src\proc_macro\bridge\mod.rs:248:5
stack backtrace:
  0: backtrace::backtrace::trace_unsynchronized
            at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.46\src\backtrace\mod.rs:66
  1: std::sys_common::backtrace::_print_fmt
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:78
  2: std::sys_common::backtrace::_print::{{impl}}::fmt
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:59
  3: core::fmt::write
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libcore\fmt\mod.rs:1076
  4: std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\io\mod.rs:1537
  5: std::sys_common::backtrace::_print
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:62
  6: std::sys_common::backtrace::print
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:49
  7: std::panicking::default_hook::{{closure}}
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\panicking.rs:198
  8: std::panicking::default_hook
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\panicking.rs:218
  9: std::panicking::rust_panic_with_hook
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\panicking.rs:486
 10: std::panicking::begin_panic
 11: ra_proc_macro_srv::proc_macro::bridge::api_tags::{{impl}}::decode<()>
            at .\src\proc_macro\bridge\rpc.rs:105
 12: ra_proc_macro_srv::proc_macro::bridge::api_tags::{{impl}}::decode<()>
            at .\src\proc_macro\bridge\rpc.rs:102
 13: ra_proc_macro_srv::proc_macro::bridge::server::{{impl}}::dispatch<ra_proc_macro_srv::rustc_server::Rustc>
            at .\src\proc_macro\bridge\server.rs:102
 14: ra_proc_macro_srv::proc_macro::bridge::server::{{impl}}::run_bridge_and_client::{{closure}}<fn(ra_proc_macro_srv::proc_macro::bridge::client::TokenStream) -> ra_proc_macro_srv::proc_macro::bridge::client::TokenStream,ra_proc_macro_srv::proc_macro::bridge:Left:

SUBTREE $
 PUNCH   # [alone] 4294967295
 SUBTREE [] 4294967295
   IDENT   doc 4294967295
   SUBTREE () 4294967295
     IDENT   hidden 4294967295
 PUNCH   # [alone] 4294967295
 SUBTREE [] 4294967295
   IDENT   allow 4294967295
   SUBTREE () 4294967295
     IDENT   non_upper_case_globals 4294967295
     PUNCH   , [alone] 4294967295
     IDENT   unused_attributes 4294967295
     PUNCH   , [alone] 4294967295
     IDENT   unused_qualifications 4294967295
 IDENT   const 4294967295
 IDENT   _IMPL_SERIALIZE_FOR_Foo 4294967295
 PUNCH   : [alone] 4294967295
 SUBTREE () 4294967295
 PUNCH   = [alone] 4294967295
 SUBTREE {} 4294967295
   PUNCH   # [alone] 4294967295
   SUBTREE [] 4294967295
     IDENT   allow 4294967295
     SUBTREE () 4294967295
       IDENT   rust_2018_idioms 4294967295
       PUNCH   , [alone] 4294967295
       IDENT   clippy 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   useless_attribute 4294967295
   IDENT   extern 4294967295
   IDENT   crate 4294967295
   IDENT   serde 4294967295
   IDENT   as 4294967295
   IDENT   _serde 4294967295
   PUNCH   ; [alone] 4294967295
   PUNCH   # [alone] 4294967295
   SUBTREE [] 4294967295
     IDENT   allow 4294967295
     SUBTREE () 4294967295
       IDENT   unused_macros 4294967295
   IDENT   macro_rules 4294967295
   PUNCH   ! [alone] 4294967295
   IDENT   try 4294967295
   SUBTREE {} 4294967295
     SUBTREE () 4294967295
       PUNCH   $ [alone] 4294967295
       IDENT   __expr 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   expr 4294967295
     PUNCH   = [joint] 4294967295
     PUNCH   > [alone] 4294967295
     SUBTREE {} 4294967295
       IDENT   match 4294967295
       PUNCH   $ [alone] 4294967295
       IDENT   __expr 4294967295
       SUBTREE {} 4294967295
         IDENT   _serde 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   export 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   Ok 4294967295
         SUBTREE () 4294967295
           IDENT   __val 4294967295
         PUNCH   = [joint] 4294967295
         PUNCH   > [alone] 4294967295
         IDENT   __val 4294967295
         PUNCH   , [alone] 4294967295
         IDENT   _serde 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   export 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   Err 4294967295
         SUBTREE () 4294967295
           IDENT   __err 4294967295
         PUNCH   = [joint] 4294967295
         PUNCH   > [alone] 4294967295
         SUBTREE {} 4294967295
           IDENT   return 4294967295
           IDENT   _serde 4294967295
           PUNCH   : [joint] 4294967295
           PUNCH   : [alone] 4294967295
           IDENT   export 4294967295
           PUNCH   : [joint] 4294967295
           PUNCH   : [alone] 4294967295
           IDENT   Err 4294967295
           SUBTREE () 4294967295
             IDENT   __err 4294967295
           PUNCH   ; [alone] 4294967295
   PUNCH   # [alone] 4294967295
   SUBTREE [] 4294967295
     IDENT   automatically_derived 4294967295
   IDENT   impl 4294967295
   IDENT   _serde 4294967295
   PUNCH   : [joint] 4294967295
   PUNCH   : [alone] 4294967295
   IDENT   Serialize 4294967295
   IDENT   for 4294967295
   IDENT   Foo 1
   SUBTREE {} 4294967295
     IDENT   fn 4294967295
     IDENT   serialize 4294967295
     PUNCH   < [alone] 4294967295
     IDENT   __S 4294967295
     PUNCH   > [alone] 4294967295
     SUBTREE () 4294967295
       PUNCH   & [alone] 4294967295
       IDENT   self 4294967295
       PUNCH   , [alone] 4294967295
       IDENT   __serializer 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   __S 4294967295
     PUNCH   - [joint] 4294967295
     PUNCH   > [alone] 4294967295
     IDENT   _serde 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH                at : [alone] 4294967295
     IDENT   export 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Result 4294967295
     PUNCH   < [alone] 4294967295
     IDENT   __S 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Ok 4294967295
     PUNCH   , [alone] 4294967295
     IDENT   __S 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Error 4294967295
     PUNCH   > [alone] 4294967295
     IDENT   where 4294967295
     IDENT   __S 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   _serde 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Serializer 4294967295
     PUNCH   , [alone] 4294967295
     SUBTREE {} 4294967295
       IDENT   let 4294967295
       IDENT   __serde_state 4294967295
       PUNCH   = [alone] 4294967295
       IDENT   try 4294967295
       PUNCH   ! [alone] 4294967295
       SUBTREE () 4294967295
         IDENT   _serde 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   Serializer 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   serialize_struct 4294967295
         SUBTREE () 4294967295
           IDENT   __serializer 4294967295
           PUNCH   , [alone] 4294967295
           LITERAL b"Foo" 4294967295
           PUNCH   , [alone] 4294967295
           IDENT   false 4294967295
           IDENT   as 4294967295
           IDENT   usize 4294967295
       PUNCH   ; [alone] 4294967295
       IDENT   _serde 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   ser 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   SerializeStruct 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   end 4294967295
       SUBTREE () 4294967295
         IDENT   __serde_state 4294967295
 PUNCH   ; [alone] 4294967295.

Right:
\SUBTREE $
 PUNCH   # [alone] 4294967295
 SUBTREE [] 4294967295
   IDENT   doc 4294967295
   SUBTREE () 4294967295
     IDENT   hidden 4294967295
 PUNCH   # [alone] 4294967295
 SUBTREE [] 4294967295
   IDENT   allow 4294967295
   SUBTREE () 4294967295
     IDENT   non_upper_case_globals 4294967295
     PUNCH   , [alone] 4294967295
     IDENT   unused_attributes 4294967295
     PUNCH   , [alone] 4294967295
     IDENT   unused_qualifications 4294967295
 IDENT   const 4294967295
 IDENT   _IMPL_SERIALIZE_FOR_Foo 4294967295
 PUNCH   : [alone] 4294967295
 SUBTREE () 4294967295
 PUNCH   = [alone] 4294967295
 SUBTREE {} 4294967295
   PUNCH   # [alone] 4294967295
   SUBTREE [] 4294967295
     IDENT   allow 4294967295
     SUBTREE () 4294967295
       IDENT   rust_2018_idioms 4294967295
       PUNCH   , [alone] 4294967295
       IDENT   clippy 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   useless_attribute 4294967295
   IDENT   extern 4294967295
   IDENT   crate 4294967295
   IDENT   serde 4294967295
   IDENT   as 4294967295
   IDENT   _serde 4294967295
   PUNCH   ; [alone] 4294967295
   PUNCH   # [alone] 4294967295
   SUBTREE [] 4294967295
     IDENT   allow 4294967295
     SUBTREE () 4294967295
       IDENT   unused_macros 4294967295
   IDENT   macro_rules 4294967295
   PUNCH   ! [alone] 4294967295
   IDENT   try 4294967295
   SUBTREE {} 4294967295
     SUBTREE () 4294967295
       PUNCH   $ [alone] 4294967295
       IDENT   __expr 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   expr 4294967295
     PUNCH   = [joint] 4294967295
     PUNCH   > [alone] 4294967295
     SUBTREE {} 4294967295
       IDENT   match 4294967295
       PUNCH   $ [alone] 4294967295
       IDENT   __expr 4294967295
       SUBTREE {} 4294967295
         IDENT   _serde 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   export 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   Ok 4294967295
         SUBTREE () 4294967295
           IDENT   __val 4294967295
         PUNCH   = [joint] 4294967295
         PUNCH   > [alone] 4294967295
         IDENT   __val 4294967295
         PUNCH   , [alone] 4294967295
         IDENT   _serde 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   export 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   Err 4294967295
         SUBTREE () 4294967295
           IDENT   __err 4294967295
         PUNCH   = [joint] 4294967295
         PUNCH   > [alone] 4294967295
         SUBTREE {} 4294967295
           IDENT   return 4294967295
           IDENT   _serde 4294967295
           PUNCH   : [joint] 4294967295
           PUNCH   : [alone] 4294967295
           IDENT   export 4294967295
           PUNCH   : [joint] 4294967295
           PUNCH   : [alone] 4294967295
           IDENT   Err 4294967295
           SUBTREE () 4294967295
             IDENT   __err 4294967295
           PUNCH   ; [alone] 4294967295
   PUNCH   # [alone] 4294967295
   SUBTREE [] 4294967295
     IDENT   automatically_derived 4294967295
   IDENT   impl 4294967295
   IDENT   _serde 4294967295
   PUNCH   : [joint] 4294967295
   PUNCH   : [alone] 4294967295
   IDENT   Serialize 4294967295
   IDENT   for 4294967295
   IDENT   Foo 1
   SUBTREE {} 4294967295
     IDENT   fn 4294967295
     IDENT   serialize 4294967295
     PUNCH   < [alone] 4294967295
     IDENT   __S 4294967295
     PUNCH   > [alone] 4294967295
     SUBTREE () 4294967295
       PUNCH   & [alone] 4294967295
       IDENT   self 4294967295
       PUNCH   , [alone] 4294967295
       IDENT   __serializer 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   __S 4294967295
     PUNCH   - [joint] 4294967295
     PUNCH   > [alone] 4294967295
     IDENT   _serde 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   src\proc_macro\bridge\server.rs: [alone] 4294967295
     IDENT   export 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Result 4294967295
     PUNCH   < [alone] 4294967295
     IDENT   __S 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Ok 4294967295
     PUNCH   , [alone] 4294967295
     IDENT   __S 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Error 4294967295
     PUNCH   > [alone] 4294967295
     IDENT   where 4294967295
     IDENT   __S 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   _serde 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Serializer 4294967295
     PUNCH   , [alone] 4294967295
     SUBTREE {} 4294967295
       IDENT   let 4294967295
       IDENT   __serde_state 4294967295
       PUNCH   = [alone] 4294967295
       IDENT   try 4294967295
       PUNCH   ! [alone] 4294967295
       SUBTREE () 4294967295
         IDENT   _serde 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   Serializer 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   serialize_struct 4294967295
         SUBTREE () 4294967295
           IDENT   __serializer 4294967295
           PUNCH   , [alone] 4294967295
           LITERAL "Foo" 4294967295
           PUNCH   , [alone] 4294967295
           IDENT   false 4294967295
           IDENT   as 4294967295
           IDENT   usize 4294967295
       PUNCH   ; [alone] 4294967295
       IDENT   _serde 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   ser 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   SerializeStruct 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   end 4294967295
       SUBTREE () 4294967295
         IDENT   __serde_state 4294967295
 PUNCH   ; [alone] 4294967295:

Diff:
152SUBTREE $
 PUNCH   # [alone] 4294967295
 SUBTREE [] 4294967295
   IDENT   doc 4294967295
   SUBTREE () 4294967295
     IDENT   hidden 4294967295
 PUNCH   # [alone] 4294967295
 SUBTREE [] 4294967295
   IDENT   allow 4294967295
   SUBTREE () 4294967295
     IDENT   non_upper_case_globals 4294967295
     PUNCH   , [alone] 4294967295
     IDENT   unused_attributes 4294967295
     PUNCH   , [alone] 4294967295
     IDENT   unused_qualifications 4294967295
 IDENT   const 4294967295
 IDENT   _IMPL_SERIALIZE_FOR_Foo 4294967295
 PUNCH   : [alone] 4294967295
 SUBTREE () 4294967295
 PUNCH   = [alone] 4294967295
 SUBTREE {} 4294967295
   PUNCH   # [alone] 4294967295
   SUBTREE [] 4294967295
     IDENT   allow 4294967295
     SUBTREE () 4294967295
       IDENT   rust_2018_idioms 4294967295
       PUNCH   , [alone] 4294967295
       IDENT   clippy 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   useless_attribute 4294967295
   IDENT   extern 4294967295
   IDENT   crate 4294967295
   IDENT   serde 4294967295
   IDENT   as 4294967295
   IDENT   _serde 4294967295
   PUNCH   ; [alone] 4294967295
   PUNCH   # [alone] 4294967295
   SUBTREE [] 4294967295
     IDENT   allow 4294967295
     SUBTREE () 4294967295
       IDENT   unused_macros 4294967295
   IDENT   macro_rules 4294967295
   PUNCH   ! [alone] 4294967295
   IDENT   try 4294967295
   SUBTREE {} 4294967295
     SUBTREE () 4294967295
       PUNCH   $ [alone] 4294967295
       IDENT   __expr 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   expr 4294967295
     PUNCH   = [joint] 4294967295
     PUNCH   > [alone] 4294967295
     SUBTREE {} 4294967295
       IDENT   match 4294967295
       PUNCH   $ [alone] 4294967295
       IDENT   __expr 4294967295
       SUBTREE {} 4294967295
         IDENT   _serde 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   export 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   Ok 4294967295
         SUBTREE () 4294967295
           IDENT   __val 4294967295
         PUNCH   = [joint] 4294967295
         PUNCH   > [alone] 4294967295
         IDENT   __val 4294967295
         PUNCH   , [alone] 4294967295
         IDENT   _serde 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   export 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   Err 4294967295
         SUBTREE () 4294967295
           IDENT   __err 4294967295
         PUNCH   = [joint] 4294967295
         PUNCH   > [alone] 4294967295
         SUBTREE {} 4294967295
           IDENT   return 4294967295
           IDENT   _serde 4294967295
           PUNCH   : [joint] 4294967295
           PUNCH   : [alone] 4294967295
           IDENT   export 4294967295
           PUNCH   : [joint] 4294967295
           PUNCH   : [alone] 4294967295
           IDENT   Err 4294967295
           SUBTREE () 4294967295
             IDENT   __err 4294967295
           PUNCH   ; [alone] 4294967295
   PUNCH   # [alone] 4294967295
   SUBTREE [] 4294967295
     IDENT   automatically_derived 4294967295
   IDENT   impl 4294967295
   IDENT   _serde 4294967295
   PUNCH   : [joint] 4294967295
   PUNCH   : [alone] 4294967295
   IDENT   Serialize 4294967295
   IDENT   for 4294967295
   IDENT   Foo 1
   SUBTREE {} 4294967295
     IDENT   fn 4294967295
     IDENT   serialize 4294967295
     PUNCH   < [alone] 4294967295
     IDENT   __S 4294967295
     PUNCH   > [alone] 4294967295
     SUBTREE () 4294967295
       PUNCH   & [alone] 4294967295
       IDENT   self 4294967295
       PUNCH   , [alone] 4294967295
       IDENT   __serializer 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   __S 4294967295
     PUNCH   - [joint] 4294967295
     PUNCH   > [alone] 4294967295
     IDENT   _serde 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH
: [alone] 4294967295
     IDENT   export 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Result 4294967295
     PUNCH   < [alone] 4294967295
     IDENT   __S 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Ok 4294967295
     PUNCH   , [alone] 4294967295
     IDENT   __S 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Error 4294967295
     PUNCH   > [alone] 4294967295
     IDENT   where 4294967295
     IDENT   __S 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   _serde 4294967295
     PUNCH   : [joint] 4294967295
     PUNCH   : [alone] 4294967295
     IDENT   Serializer 4294967295
     PUNCH   , [alone] 4294967295
     SUBTREE {} 4294967295
       IDENT   let 4294967295
       IDENT   __serde_state 4294967295
       PUNCH   = [alone] 4294967295
       IDENT   try 4294967295
       PUNCH   ! [alone] 4294967295
       SUBTREE () 4294967295
         IDENT   _serde 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   Serializer 4294967295
         PUNCH   : [joint] 4294967295
         PUNCH   : [alone] 4294967295
         IDENT   serialize_struct 4294967295
         SUBTREE () 4294967295
           IDENT   __serializer 4294967295
           PUNCH   , [alone] 4294967295 
15            LITERAL "Foo" 4294967295: ra_proc_macro_srv::proc_macro::bridge::closure::{{impl}}::from::call<ra_proc_macro_srv::proc_macro::bridge::buffer::Buffer<u8>,ra_proc_macro_srv::proc_macro::bridge::buffer::Buffer<u8>,closure-0>

            at             LITERAL b"Foo" 4294967295.\
src\proc_macro\bridge\closure.rs            PUNCH   , [alone] 4294967295
           IDENT   false 4294967295
           IDENT   as 4294967295
           IDENT   usize 4294967295
       PUNCH   ; [alone] 4294967295
       IDENT   _serde 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   ser 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   SerializeStruct 4294967295
       PUNCH   : [joint] 4294967295
       PUNCH   : [alone] 4294967295
       IDENT   end 4294967295
       SUBTREE () 4294967295
         IDENT   __serde_state 4294967295
 PUNCH   ; [alone] 4294967295:
17



thread 'tests::test_derive_serialize_proc_macro' panicked at 'text differs', crates\ra_proc_macro_srv\src\tests\utils.rs:55:5
 16: proc_macro::bridge::scoped_cell::ScopedCell::replace
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libproc_macro\bridge\scoped_cell.rs:74
 17: proc_macro::bridge::client::{{impl}}::with::{{closure}}
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libproc_macro\bridge\client.rs:290
 18: std::thread::local::LocalKey::try_with
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\thread\local.rs:263
 19: std::thread::local::LocalKey::with
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\thread\local.rs:239
 20: proc_macro::bridge::client::BridgeState::with
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libproc_macro\bridge\client.rs:289
 21: proc_macro::bridge::Bridge::with
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libproc_macro\bridge\client.rs:327
 22: proc_macro::bridge::client::Literal::set_span
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libproc_macro\bridge\client.rs:236
 23: proc_macro::Literal::set_span
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libproc_macro\lib.rs:1109
 24: proc_macro2::imp::Literal::set_span
 25: proc_macro2::Literal::set_span
 26: syn::error::ErrorMessage::to_compile_error
 27: core::ops::function::FnMut::call_mut
 28: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once
 29: core::option::Option<T>::map
 30: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::next
 31: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::next
 32: <proc_macro2::imp::TokenStream as core::iter::traits::collect::FromIterator<proc_macro2::imp::TokenStream>>::from_iter
 33: core::iter::traits::iterator::Iterator::collect
 34: <proc_macro2::TokenStream as core::iter::traits::collect::FromIterator<proc_macro2::TokenStream>>::from_iter   
 35: core::iter::traits::iterator::Iterator::collect
 36: syn::error::Error::to_compile_error
 37: serde_derive::internals::symbol::<impl core::cmp::PartialEq<serde_derive::internals::symbol::Symbol> for &syn::path::Path>::eq
 38: core::ops::function::FnOnce::call_once
 39: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run
 40: proc_macro::bridge::client::run_client::{{closure}}::{{closure}}
 41: proc_macro::bridge::scoped_cell::ScopedCell<T>::set
 42: proc_macro::bridge::scoped_cell::ScopedCell<T>::set
 43: proc_macro::bridge::scoped_cell::ScopedCell<T>::set
 44: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}
 45: std::thread::local::LocalKey<T>::with
 46: std::thread::local::LocalKey<T>::with
 47: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter
 48: proc_macro::bridge::client::run_client::{{closure}}
 49: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
 50: std::panicking::try
 51: serde_derive::pretend::pretend_variants_used::{{closure}}::{{closure}}
 52: std::panicking::try
 53: std::panic::catch_unwind
 54: <alloc::collections::btree::map::Keys<K,V> as core::iter::traits::iterator::Iterator>::next::{{closure}}       
 55: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run       
 56: ra_proc_macro_srv::proc_macro::bridge::server::{{impl}}::run_bridge_and_client<fn(ra_proc_macro_srv::proc_macro::bridge::client::TokenStream) -> ra_proc_macro_srv::proc_macro::bridge::client::TokenStream,ra_proc_macro_srv::proc_macro::bridge::server::Disp
            at .\src\proc_macro\bridge\server.rs:154
 57: ra_proc_macro_srv::proc_macro::bridge::server::run_server<ra_proc_macro_srv::rustc_server::Rustc,ra_proc_macro_srv::proc_macro::bridge::Marked<ra_proc_macro_srv::rustc_server::TokenStream, ra_proc_macro_srv::proc_macro::bridge::client::TokenStream>,ra_pro
            at .\src\proc_macro\bridge\server.rs:276
 58: ra_proc_macro_srv::proc_macro::bridge::client::Client<fn(ra_proc_macro_srv::proc_macro::bridge::client::TokenStream) -> ra_proc_macro_srv::proc_macro::bridge::client::TokenStream>::run<ra_proc_macro_srv::rustc_server::Rustc,ra_proc_macro_srv::proc_macro::
            at .\src\proc_macro\bridge\server.rs:289
 59: ra_proc_macro_srv::dylib::Expander::expand
            at .\src\dylib.rs:146
 60: ra_proc_macro_srv::tests::utils::assert_expand
            at .\src\tests\utils.rs:54
 61: ra_proc_macro_srv::tests::test_derive_serialize_proc_macro_failed
            at .\src\tests\mod.rs:21
 62: ra_proc_macro_srv::tests::test_derive_serialize_proc_macro_failed::{{closure}}
            at .\src\tests\mod.rs:20
 63: core::ops::function::FnOnce::call_once<closure-0,()>
            at C:\Users\Zac\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\ops\function.rs:232
 64: alloc::boxed::{{impl}}::call_once
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\liballoc\boxed.rs:1076
 65: std::panic::{{impl}}::call_once
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panic.rs:318
 66: std::panicking::try::do_call
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panicking.rs:297
 67: std::panicking::try
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panicking.rs:274
 68: std::panic::catch_unwind
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panic.rs:394
 69: test::run_test_in_process
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libtest\lib.rs:541
 70: test::run_test::run_test_inner::{{closure}}
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libtest\lib.rs:450
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
thread ' tests::test_derive_serialize_proc_macro_failed ' panicked at '0called `Result::unwrap()` on an `Err` value: String("internal error: entered unreachable code"): ', backtrace::backtrace::trace_unsynchronizedcrates\ra_proc_macro_srv\src\tests\utils.rs
:             at 54C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.46\src\backtrace\mod.rs::1566

  1: std::sys_common::backtrace::_print_fmt
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:78
  2: std::sys_common::backtrace::_print::{{impl}}::fmt
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:59
  3: core::fmt::write
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libcore\fmt\mod.rs:1076
  4: std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\io\mod.rs:1537
  5: std::sys_common::backtrace::_print
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:62
  6: std::sys_common::backtrace::print
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:49
  7: std::panicking::default_hook::{{closure}}
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\panicking.rs:198
  8: std::panicking::default_hook
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\panicking.rs:218
  9: std::panicking::rust_panic_with_hook
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\panicking.rs:486
 10: std::panicking::begin_panic
 11: ra_proc_macro_srv::tests::utils::assert_expand
            at .\src\tests\utils.rs:55
 12: ra_proc_macro_srv::tests::test_derive_serialize_proc_macro
            at .\src\tests\mod.rs:10
 13: ra_proc_macro_srv::tests::test_derive_serialize_proc_macro::{{closure}}
            at .\src\tests\mod.rs:9
 14: core::ops::function::FnOnce::call_once<closure-0,()>
            at C:\Users\Zac\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\ops\function.rs:232
 15: alloc::boxed::{{impl}}::call_once
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\liballoc\boxed.rs:1076
 16: std::panic::{{impl}}::call_once
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panic.rs:318
 17: std::panicking::try::do_call
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panicking.rs:297
 18: std::panicking::try
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panicking.rs:274
 19: std::panic::catch_unwind
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panic.rs:394
 20: test::run_test_in_process
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libtest\lib.rs:541
 21: test::run_test::run_test_inner::{{closure}}
            at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libtest\lib.rs:450
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
test tests::test_derive_serialize_proc_macro ... FAILED
  0:     0x7ff78f09a80e - backtrace::backtrace::trace_unsynchronized
                              at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.46\src\backtrace\mod.rs:66
  1:     0x7ff78f09a80e - std::sys_common::backtrace::_print_fmt
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:78
  2:     0x7ff78f09a80e - std::sys_common::backtrace::_print::{{impl}}::fmt
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:59
  3:     0x7ff78f0b85dc - core::fmt::write
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libcore\fmt\mod.rs:1076       
  4:     0x7ff78f095d0c - std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\io\mod.rs:1537
  5:     0x7ff78f09e04b - std::sys_common::backtrace::_print
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:62
  6:     0x7ff78f09e04b - std::sys_common::backtrace::print
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys_common\backtrace.rs:49
  7:     0x7ff78f09e04b - std::panicking::default_hook::{{closure}}
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\panicking.rs:198       
  8:     0x7ff78f09dc98 - std::panicking::default_hook
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\panicking.rs:218       
  9:     0x7ff78f09e826 - std::panicking::rust_panic_with_hook
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\panicking.rs:486       
 10:     0x7ff78f09e3af - std::panicking::begin_panic_handler
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\panicking.rs:388       
 11:     0x7ff78f0b6420 - core::panicking::panic_fmt
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libcore\panicking.rs:101      
 12:     0x7ff78f0b6243 - core::option::expect_none_failed
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libcore\option.rs:1272        
 13:     0x7ff78edd51e0 - core::result::Result<ra_tt::Subtree, ra_proc_macro_srv::proc_macro::bridge::rpc::PanicMessage>::unwrap<ra_tt::Subtree,ra_proc_macro_srv::proc_macro::bridge::rpc::PanicMessage>
                              at C:\Users\Zac\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\result.rs:1005
 14:     0x7ff78ee9ec0d - ra_proc_macro_srv::tests::utils::assert_expand
                              at C:\Users\Zac\Programming\rust\rust-analyzer\crates\ra_proc_macro_srv\src\tests\utils.rs:54
 15:     0x7ff78ee1e1f6 - ra_proc_macro_srv::tests::test_derive_serialize_proc_macro_failed
                              at C:\Users\Zac\Programming\rust\rust-analyzer\crates\ra_proc_macro_srv\src\tests\mod.rs:21
 16:     0x7ff78edb3dae - ra_proc_macro_srv::tests::test_derive_serialize_proc_macro_failed::{{closure}}
                              at C:\Users\Zac\Programming\rust\rust-analyzer\crates\ra_proc_macro_srv\src\tests\mod.rs:20
 17:     0x7ff78ede08ab - core::ops::function::FnOnce::call_once<closure-0,()>
                              at C:\Users\Zac\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\ops\function.rs:232
 18:     0x7ff78eef74c7 - alloc::boxed::{{impl}}::call_once
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\liballoc\boxed.rs:1076
 19:     0x7ff78eef74c7 - std::panic::{{impl}}::call_once
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panic.rs:318
 20:     0x7ff78eef74c7 - std::panicking::try::do_call
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panicking.rs:297        
 21:     0x7ff78eef74c7 - std::panicking::try
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panicking.rs:274        
 22:     0x7ff78eef74c7 - std::panic::catch_unwind
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panic.rs:394
 23:     0x7ff78eef74c7 - test::run_test_in_process
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libtest\lib.rs:541
 24:     0x7ff78eef74c7 - test::run_test::run_test_inner::{{closure}}
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libtest\lib.rs:450
 25:     0x7ff78eec7036 - std::sys_common::backtrace::__rust_begin_short_backtrace<closure-0,()>
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\sys_common\backtrace.rs:130
 26:     0x7ff78eece08e - std::thread::{{impl}}::spawn_unchecked::{{closure}}::{{closure}}
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\thread\mod.rs:475       
 27:     0x7ff78eece08e - std::panic::{{impl}}::call_once
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panic.rs:318
 28:     0x7ff78eece08e - std::panicking::try::do_call
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panicking.rs:297        
 29:     0x7ff78eece08e - std::panicking::try
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panicking.rs:274        
 30:     0x7ff78eece08e - std::panic::catch_unwind
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\panic.rs:394
 31:     0x7ff78eece08e - std::thread::{{impl}}::spawn_unchecked::{{closure}}
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libstd\thread\mod.rs:474       
 32:     0x7ff78eece08e - core::ops::function::FnOnce::call_once<closure-0,()>
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\libcore\ops\function.rs:232    
 33:     0x7ff78f0a74ea - alloc::boxed::{{impl}}::call_once
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\liballoc\boxed.rs:1076
 34:     0x7ff78f0a74ea - alloc::boxed::{{impl}}::call_once
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\src\liballoc\boxed.rs:1076
 35:     0x7ff78f0a74ea - std::sys::windows::thread::{{impl}}::new::thread_start
                              at /rustc/47c3158c3d797f75f0f7b2b2a977179668919dab\/src\libstd\sys\windows\thread.rs:56
 36:     0x7ff89e357bd4 - BaseThreadInitThunk
 37:     0x7ff89e82ce51 - RtlUserThreadStart
thread panicked while panicking. aborting.
error: test failed, to rerun pass '-p ra_proc_macro_srv --lib'

Caused by:
 process didn't exit successfully: `C:\Users\Zac\Programming\rust\rust-analyzer\target\debug\deps\ra_proc_macro_srv-0a34b923f611cf91.exe --nocapture` (exit code: 0xc000001d, STATUS_ILLEGAL_INSTRUCTION)
@lnicola
Copy link
Member

lnicola commented Jun 13, 2020

It's a failing assertion. See #4676 for details.

@zacps
Copy link
Contributor Author

zacps commented Jun 13, 2020

Ah great, already taken care of. Does it make sense to leave this open until it's resolved?

@lnicola
Copy link
Member

lnicola commented Jun 13, 2020

I think it's fine to leave it open.

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

Successfully merging a pull request may close this issue.

2 participants