Description

From Licensee:

"We've encountered a world partition bug where newly created actors go missing in the viewport and Outliner after saving modifications to a large number of actors. This bug is particularly concerning because there are no easily noticeable signs to the user that it has occurred. Once this bug is encountered, an editor restart is required before the actors will once again appear in the map.

These are the steps we've been running to consistently repro this issue:

  1. In a world partition map, add 500 new actors to a single editor cell
  2. Use ctrl+S to save the map
  3. In the Output Log, search for the text "buffer overflow" (a "directory notification failed" warning indicates the bug has occurred)
  4. Switch to a new blank map
  5. Load the world partition map from step 1 again
  6. Load the editor cell where the new actors were added and note that they are no longer there, nor appear in the Outliner view

I've done quite a bit of digging into this issue and I've identified it's an issue with world partition maps' reliance on the AssetRegistry to build its list of actors. After saving changes to a large number of external actor packages, the AssetRegistry's directory watcher on the Content folder runs into a buffer overflow when querying the OS for the list of file changes. On Windows, this buffer overflow causes the entire change buffer to be discarded and leaves the AssetRegistry in a bad state, as no entries will be created for newly created actor packages and the existing entries for deleted actor packages will remain. The AssetRegistry will remain in a bad state until the Content folder is forcibly rescanned- which typically won't be until the next time the editor is started up. This bug occurs for me at around 450 actors modified, but it will vary from user to user depending on the number of characters in their project path.

As a stopgap, we've temporarily increased the buffer sizes in FDirectoryWatchRequestWindows so that the issue is less likely to occur. Are there any concerns with this approach until a proper fix is available?"

Steps to Reproduce

These are the steps we've been running to consistently repro this issue:

  1. In a world partition map, add 500 new actors to a single editor cell
  2. Use ctrl+S to save the map
  3. In the Output Log, search for the text "buffer overflow" (a "directory notification failed" warning indicates the bug has occurred)
  4. Switch to a new blank map
  5. Load the world partition map from step 1 again
  6. Load the editor cell where the new actors were added and note that they are no longer there, nor appear in the Outliner view

Have Comments or More Details?

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

1
Login to Vote

Fixed
Fix Commit23661435
Main Commit23661435
CreatedNov 4, 2022
ResolvedJan 12, 2023
UpdatedJan 20, 2024