When a running search in all blueprints is closed, it may prevent an AsyncTask used to return the look up FText's from StringTables from running on the game thread, leading to a deadlock.
When the search window is closed, the StreamSearch is ended. This involves waiting on all pending tasks to complete. The async task requires access to the game thread to complete, but as the game thread is blocked, it cannot do so, and this results in a deadlock condition.
This is unlikely to occur on fresh projects without the repro steps below. It occurs more readily on larger projects that rely on StringTables, however,
The easiest way to replicate this is via thread freeze/thaw.
1. Place a breakdown on Line 51 in ImaginaryBlueprintData.cpp (TPromise<bool> Promise[Image Removed]
2. Place a breakdown on Line 1084 in FindInBlueprint.cpp (StreamSearch->EnsureCompletion()[Image Removed]
3. Create a string table with any value
4. Add a format text node in a BP and link it to the string table
5. Find in All BPs for the text that the node will return (The value that is pointed to by the string table.)
6. When the first breakpoint is hit, freeze that thread.
7. Continue execution and close the search window.
8. The second breakpoint should be hit. Continuing will result in the game thread locking up as the search thread is frozen.
9. Confirm this is a deadlock by thawing the search thread/thawing all threads. The two threads are now waiting on each other to complete work and won't recover.
How do I set a material as a post-processing material?
How does TextureRenderTarget2D get TArray<uint8> type data?
Why does the REMOVE method of map container remove elements have memory leaks?
What does the number (2152,1-34) in glsl error mean?
How does TArray loop correctly remove elements in blueprints?
What is the cause of the packaging error falling back to 'GameUserSettings' in ue5?
What is the difference between Camera and CineCamera?
How to delete some elements correctly when deleting an array loop?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-218278 in the post.
1 |
Component | UE - Gameplay - Blueprint Editor |
---|---|
Affects Versions | 5.4.3, 5.2 |
Target Fix | 5.5 |
Fix Commit | 34744857 |
---|
Created | Jun 19, 2024 |
---|---|
Resolved | Jun 28, 2024 |
Updated | Jul 23, 2024 |