Description

This crash is caused by how source control history is managed and shown. In this specific case the source control software is Perforce. As written in the repro steps, it can happen to any uasset that has more than 100 revisions. It also needs to have a few undos in its history. In Perforce, these undos are represented as self integrations, from itself to itself. If by chance the hundredth revision happens to be an undo, the code will attempt to get a hundred more changes from the source branch. As you can imagine the hundredth revision in this new history will be the same undo. So it will run in a loop until the memory is fully exhausted.

I checked quickly and it looks like this has not been fixed yet in the latest. As a workaround, submitting a new revision should fix the issue.

Steps to Reproduce

Use the editor to check the source control history of a uasset. It will crash when the following conditions are present:

  1. Have more than 100 revisions.
  2. Have the hundredth revision be an undo.

This will cause FSourceControlWindows::DisplayRevisionHistory from SourceControlWindows/Private/SSourceControlHistory.cpp to eat all of the memory and something will crash. To repro this more easily it is possible to reduce the amount of revisions gotten from source control and make sure the last one is an undo.

Have Comments or More Details?

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

0
Login to Vote

Backlogged
ComponentUE - Editor - Workflow Systems
Affects Versions5.3
CreatedJun 18, 2024
UpdatedJun 19, 2024
View Jira Issue