Regression: Tested in UE5/Release-5.0 at CL 20979098 and the issue occurs.
Issue would load in to the project without asking for permission and cause an ensure to occur, in 5.0.3 the issue would cause the device to hang on a black screen instead of loading the project.
Error Message:
Ensure condition failed: oldValue == newValue [File:D:/build/++UE5/Sync/Engine/Source/Runtime/Core/Private/HAL/ThreadingBase.cpp] [Line: 189] oldValue(0) newValue(1) If this check fails make sure that there is a FTaskTagScope(ETaskTag::EGameThread) as deep as possible on the current callstack, you can see the current value in ActiveNamedThreads(1)
Actual Result: Project loads in but an ensure occurs and no popup asking for permission occurs.
Expected Result: Permissions can be accepted and the project runs as expected.
!IsInGameThread() [] !UObject::ProcessEvent(UFunction*, void*) [] !AActor::ProcessEvent(UFunction*, void*) [] !void TScriptDelegate<FWeakObjectPtr>::ProcessDelegate<UObject>(void*) const [] !void TMulticastScriptDelegate<FWeakObjectPtr>::ProcessMulticastDelegate<UObject>(void*) const [] !FAndroidPermissionDynamicDelegate::Broadcast(TArray<FString, TSizedDefaultAllocator<32> > const&, TArray<bool, TSizedDefaultAllocator<32> > const&) const [] !Java_com_google_vr_sdk_samples_permission_PermissionHelper_onAcquirePermissions() [] ![Unknown]() [] ![Unknown]() [] !art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) [] !art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeStatic() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeVirtualQuick() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeDirect() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeVirtualRange() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeDirect() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeVirtual() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeVirtual() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeVirtual() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeVirtual() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeVirtual() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeVirtual() [] !ExecuteMterpImpl() [] ![Unknown]() [] !art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*) [] !bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) [] !MterpInvokeStatic() [] !ExecuteMterpImpl() [] ![Unknown]() [] !artQuickToInterpreterBridge() [] ![Unknown]() [] ![Unknown]() [] !art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) [] ![Unknown]() [] !art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long) [] ![Unknown]() [] ![Unknown]() [] ![Unknown]() []
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-170079 in the post.
4 |
Component | UE - Platform - Mobile |
---|---|
Affects Versions | 5.0.3, 5.1 |
Target Fix | 5.1.1 |
Created | Nov 14, 2022 |
---|---|
Resolved | Nov 22, 2022 |
Updated | Jan 9, 2023 |