Skip to content

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

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # 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.heygears.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.heygears.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.heygears.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.

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

Successfully merging a pull request may close this issue.

2 participants