Steps to Reproduce

cook determinism issue found in PoseSearch when doing a "-diffonly" cook.

We see a number of worker threads using a UPoseSearchSchema for their processing but the main thread calls UPoseSearchSchema::ResetFinalize() which resets its data and all the worker threads are now trying to access an invalid Schema.

Occurs frequently but not always so looks like a timing issue. it seems to be due to Schema getting scheduled for cooking just when the PoseSearch are using the asset


original UDN:


Main thread:

         UnrealEditor-PoseSearch.dll!UPoseSearchSchema::ResetFinalize() Line 213        C++

         UnrealEditor-PoseSearch.dll!UPoseSearchSchema::Finalize() Line 224        C++

         UnrealEditor-PoseSearch.dll!UPoseSearchSchema::PreSave(FObjectPreSaveContext ObjectSaveContext) Line 318        C++

         UnrealEditor-CoreUObject.dll!UE::SavePackageUtilities::CallPreSave(UObject * Object, FObjectSaveContextData & ObjectSaveContext) Line 672        C++

         UnrealEditor-CoreUObject.dll!`anonymous namespace'::RoutePresave(FSaveContext & SaveContext) Line 280        C++

         UnrealEditor-CoreUObject.dll!UPackage::Save2(UPackage * InPackage, UObject * InAsset, const wchar_t * InFilename, const FSavePackageArgs & SaveArgs) Line 3108        C++

         UnrealEditor-CoreUObject.dll!UPackage::Save(UPackage * InOuter, UObject * InAsset, const wchar_t * Filename, const FSavePackageArgs & SaveArgs) Line 20        C++

         UnrealEditor-UnrealEd.dll!UEditorEngine::Save(UPackage * InOuter, UObject * InAsset, const wchar_t * Filename, const FSavePackageArgs & InSaveArgs) Line 4887        C++

         UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::SaveCookedPackage(UE::Cook::FSaveCookedPackageContext & Context) Line 6173        C++

         UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::PumpSaves(UE::Cook::FTickStackData & StackData, unsigned int DesiredQueueLength, int & OutNumPushed, bool & bOutBusy) Line 4739        C++

         [Inline Frame] UnrealEditor-UnrealEd.dll!IsEngineExitRequested() Line 390        C++

         UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::TickMainCookLoop(UE::Cook::FTickStackData & StackData) Line 1463        C++

         UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::TickCookByTheBook(const float TimeSlice, ECookTickFlags TickFlags) Line 1345        C++

         UnrealEditor-UnrealEd.dll!UCookCommandlet::RunCookByTheBookCook(UCookOnTheFlyServer * CookOnTheFlyServer, void * StartupOptionsAsVoid, ECookByTheBookOptions CookOptions) Line 583        C++

         UnrealEditor-UnrealEd.dll!UCookCommandlet::CookByTheBook(const TArray<ITargetPlatform *,TSizedDefaultAllocator<32>> & Platforms) Line 536        C++

         UnrealEditor-UnrealEd.dll!UCookCommandlet::Main(const FString & CmdLineParams) Line 252        C++

         UnrealEditor.exe!FEngineLoop::PreInitPostStartupScreen(const wchar_t * CmdLine) Line 4239        C++

         [Inline Frame] UnrealEditor.exe!FEngineLoop::PreInit(const wchar_t *) Line 4527        C++

         [Inline Frame] UnrealEditor.exe!EnginePreInit(const wchar_t *) Line 44        C++

         UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 139        C++

         UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 251        C++

         UnrealEditor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 314        C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-218880 in the post.

Login to Vote

ComponentUE - Anim - Gameplay
Target Fix5.5
CreatedJun 26, 2024
UpdatedJun 27, 2024
View Jira Issue