Skip to content

Intermittent crash due to instance management issue #5002

@asklar

Description

@asklar

I’m seeing an intermittent crash in e2e testing in CI, I was wondering if this rings any bells to you?

Crash dump: https://dev.azure.com/ms/_apis/resources/Containers/4676630/ReactUWPTestAppTreeDump?itemPath=ReactUWPTestAppTreeDump%2FCrashDumps%2FReactUWPTestApp.exe%281%29.7008.dmp
Symbols pkg: https://dev.azure.com/ms/_apis/resources/Containers/4676630/ReactUWPTestApp?itemPath=ReactUWPTestApp%2FAppPackages%2FReactUWPTestApp_1.0.0.0_x64_Test%2FReactUWPTestApp_1.0.0.0_x64.appxsym

Mso::Future<void> ReactViewHost::InitViewInstanceInQueue(ReactViewOptions &&options) noexcept {
  // Make sure that we set new options even if we do not load due to the pending unload.
  m_options.Exchange(std::move(options));
 
  VerifyElseCrashSzTag(
      !m_isViewInstanceInited.Load(),
      "The viewInstance must be unloaded before the load with new options.",
      0x0285411a /* tag_c7ue0 */);
 
  return InitViewInstanceInQueue();
}

Stack:

11 000000d2`2c8fda80 00007ffd`b88eeed0 ntdll!KiUserExceptionDispatcher+0x2e
12 000000d2`2c8fe850 00007ffd`b89e6d01 Microsoft_ReactNative!CrashWithRecovery+0x8 [D:\a\1\s\vnext\Mso\src\crash\crash_min.cpp @ 24] 
13 000000d2`2c8fe880 00007ffd`b89e55b1 Microsoft_ReactNative!Mso::React::ReactViewHost::InitViewInstanceInQueue+0x7d [D:\a\1\s\vnext\Microsoft.ReactNative\ReactHost\ReactHost.cpp @ 414] 
14 000000d2`2c8fe920 00007ffd`b89e706a Microsoft_ReactNative!<lambda_aa45d089ce1bc7f48b3a357485d9cd03>::operator()+0xa9 [D:\a\1\s\vnext\Microsoft.ReactNative\ReactHost\ReactHost.cpp @ 174] 
15 (Inline Function) --------`-------- Microsoft_ReactNative!Mso::Executors::Internal::ExecutorInvoker::Invoke+0xa [D:\a\1\s\vnext\Mso\future\details\executor.h @ 203] 
16 000000d2`2c8fea50 00007ffd`b88f4e16 Microsoft_ReactNative!Mso::Futures::FutureTaskInvoke<Mso::Executors::Inline,<lambda_aa45d089ce1bc7f48b3a357485d9cd03>,void,Mso::Future<void>,4>::Invoke+0x2a [D:\a\1\s\vnext\Mso\future\details\futureTask.h @ 317] 
17 (Inline Function) --------`-------- Microsoft_ReactNative!Mso::Futures::CurrentFutureImpl::{dtor}+0x9 [D:\a\1\s\vnext\Mso\src\future\futureImpl.cpp @ 185] 
18 000000d2`2c8fea90 00007ffd`b88f4759 Microsoft_ReactNative!Mso::Futures::FutureImpl::Invoke+0x146 [D:\a\1\s\vnext\Mso\src\future\futureImpl.cpp @ 285] 
19 (Inline Function) --------`-------- Microsoft_ReactNative!Mso::Executors::Inline::Post+0x10 [D:\a\1\s\vnext\Mso\src\future\executor.cpp @ 25] 
1a 000000d2`2c8feaf0 00007ffd`b88f59d5 Microsoft_ReactNative!Mso::Futures::FutureTaskPost<Mso::Executors::Inline>::Post+0x29 [D:\a\1\s\vnext\Mso\future\details\futureTask.h @ 153] 
1b 000000d2`2c8feb30 00007ffd`b88f5b81 Microsoft_ReactNative!Mso::Futures::FutureImpl::TryPostInternal+0x1b5 [D:\a\1\s\vnext\Mso\src\future\futureImpl.cpp @ 891] 
1c 000000d2`2c8febc0 00007ffd`b88f5001 Microsoft_ReactNative!Mso::Futures::FutureImpl::PostContinuation+0x3d [D:\a\1\s\vnext\Mso\src\future\futureImpl.cpp @ 920] 
1d 000000d2`2c8fec00 00007ffd`b89e5807 Microsoft_ReactNative!Mso::Futures::FutureImpl::AddContinuation+0x101 [D:\a\1\s\vnext\Mso\src\future\futureImpl.cpp @ 369] 
1e 000000d2`2c8fec60 00007ffd`b89e547b Microsoft_ReactNative!Mso::Future<void>::Then<Mso::Executors::Inline,<lambda_aa45d089ce1bc7f48b3a357485d9cd03> >+0xb7 [D:\a\1\s\vnext\Mso\future\details\futureInl.h @ 117] 
1f 000000d2`2c8fecb0 00007ffd`b89ea646 Microsoft_ReactNative!Mso::React::ReactHost::LoadInQueue+0x253 [D:\a\1\s\vnext\Microsoft.ReactNative\ReactHost\ReactHost.cpp @ 170] 
20 (Inline Function) --------`-------- Microsoft_ReactNative!Mso::React::ReactHost::MakeLoadInstanceAction::__l2::<lambda_dc00d2cc6df73270bdc817083882420f>::operator()+0x10 [D:\a\1\s\vnext\Microsoft.ReactNative\ReactHost\ReactHost.cpp @ 114] 
21 000000d2`2c8ff340 00007ffd`b89e201a Microsoft_ReactNative!Mso::Details::FunctionObjectWrapper<<lambda_dc00d2cc6df73270bdc817083882420f>,Mso::Future<void> >::Invoke+0x16 [D:\a\1\s\vnext\Mso\functional\functor.h @ 165] 
22 (Inline Function) --------`-------- Microsoft_ReactNative!Mso::Functor<Mso::Future<void> __cdecl(void)>::operator()+0x14 [D:\a\1\s\vnext\Mso\functional\functor.h @ 411] 

https://dev.azure.com/ms/react-native-windows/_build/results?buildId=82215&view=artifacts&type=publishedArtifacts

We will likely need to add some instance management logging in a memory structure; it could be as simple as a circular buffer where we keep strings, or we could put breadcrumbs in the property bag in the react context

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions