In Editor Subversion Sync/Commit Frequently Crashes UE4 Editor (long but post contains log info, dmp export data and research)

Hello,

DMP report is below (#3) showing repeated source of bug that was in the 4.20 (or 4.21) log as fixed. All of my crashes so far that I’ve been looking at the DMP files point to this issue.

Experiencing frequent UE Editor crashes performing UE built in Subversion Sync and Commits, though, it appears to happen far more frequently with Sync than Commit. This set up involves using a VisualSVN server with TortoiseSVN client, in Windows, team of four people using UE 4.24.3. Version information is at the end. This has been happening since we started on 4.22

The steps we take are:
Open UE → Immediately perform a Sync [seems to work without crashing]. Do some work. Make a commit or not. Without closing UE, perform another Sync. It crashes with what seems to be about 1 out of every 3 times.

I have submitted a crash report about 90% of the time it crashes. I look through the log and do not see anything which directly points to some issue. This project does not use C++

This is what I have done:

  1. Validated all workstations (all Windows 10 up to date) and server (Windows Server 2019) Windows Event Log are error free (no system issues).
  2. Validated all workstations and server have no [reported] controller issues, disk issues (use manufacturer software), or memory issues (use memtest x86).
  3. Performed Validate Assets in Folder on the Content Root from within UE. No errors reported.
  4. I have looked through the 4.22, 4.23, and 4.24 release notes and found nothing as it pertains to source control and this issue.

Here are some warning/errors in the UE log after using Sync that I cannot find information for.

  1. LogUObjectGlobals: Warning: ReloadPackage failed to find a replacement object for ‘AITestPlaneWithDoN_C:ComponentDelegateBinding_4’ in the new package ‘/Game/Blueprints/Planes/TestingAIPlanes/AITestPlaneWithDoN’. Any existing references to this object will be nulled out. I have quite a few of these for various Blueprints. According to the source code, this is thrown when the GeneratePackageReloadEvent Function in PackageReload.cpp does not contain a Value (NewObject) for the Key (ExistingObject) when generating the new package for Sync. What causes this and how can I figure out exactly which Event is causing this? Converting the Blueprint to C++ does not correlate to the indexed ComponentDelegateBinding (thinking it would provide me with the internal data I need to identify this). Could GeneratePackageReloadEvent be returning a TSharedPtr that contains some bad data in the thing it is pointing to causing crashes when performing a Sync?

  2. LogBlueprint: Error: [Compiler BP_BeefyWaterHole] Can’t connect pins BP and Self : BP Beefy Water Hole Object Reference is not compatible with Self Object Reference. The Source code in KismetCompiler.cpp function FKismetCompilerContext::ValidateLink suggests that this error is a ForbiddenConnection.
    How could this be a forbidden connection? The pin is of type BPBeefyWaterHole, and obviously BPBeefyWaterHole itself is that same type.
    Inside BP_BeefyWaterHole, a function is being called on an object returned from a lookup. The function contains an input pin for BP_BeefyWaterHole type. We get a reference to Self and pass it in.
    I have deleted and recreated the pin thinking the argument was somehow corrupted. Didn’t make a difference. Perhaps this is warning me of some circular reference/dependency? Could these errors be causing crashes?

  3. I am starting to view the dmp contents when crashes occur. Crashes since I started doing this are all coming back with something that was mentioned in 4.20’s release notes as being fixed to stop constantly crashing the editor:
    However, this only happens when I am using Sync or Commit. It is extremely rare to have the editor crash on its own. EXCEPTION_RECORD: (.exr -1)
    ExceptionAddress: 00007ffc043a4abf (UE4Editor_Engine!FStaticMeshSceneProxy::RemoveSpeedTreeWind+0x00000000000000bf)
    ExceptionCode: c0000005 (Access violation)
    ExceptionFlags: 00000000
    NumberParameters: 2
    Parameter[0]: 0000000000000000
    Parameter[1]: ffffffffffffffff
    Attempt to read from address ffffffffffffffff

  4. It appears when the engine crashes during these processes, there is evidence of potential for blueprint corruption (or some other internal structure). We have had instances where the editor crashes and upon returning and playing in editor/standalone, we receive errors on a missing property, very different from none. Going into the blueprint, we find the property is there. Usually compiling the source of the problem fixes the issue. Sometimes we have to compile the offendee as well.

Here are other questions that I cannot find in the documentation, on the forums, or here on Answerhub:

  1. Is it recommended to use Unreal’s built in version control (for subversion) or use a Subversion client to do sync/commmit?
  2. I understand that Unreal builds new packages for entities during the Sync process. I am not clear if we lose potential data if we do NOT use Unreal’s built in Source Control. Are there any ramifications to using one vs the other?
  3. What is the recommended version of VisualSVN and TortoiseSVN to use in Unreal 4.24.3?
  4. Going back to number 4 above; if using Unreal to perform version control activities, what is the recommended environment state, or is there a preferred enviornment state?
    For example: Should we ensure all tabs are closed before Sync/Commit? Should we only perform these actions during a fresh load of Unreal Editor?

Here is the current information I have for my setup.

VisualSVN 4.0.3

TortoiseSVN 1.12.2, Build 28653 - 64 Bit , 2019/08/04 13:03:09
ipv6 enabled
Subversion 1.12.2, -release
apr 1.6.5
apr-util 1.6.1
serf 1.3.9
OpenSSL 1.1.1c 28 May 2019
zlib 1.2.11
SQLite 3.29.0

Any help would sincerely be appreciated. Thank you.

Crash while using Sync. Full dmp post analysis is attached to this post using WinDBG available on Microsoft Store for free.

EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 00007ffb8fc247d5 (UE4Editor_CoreUObject!UStruct::IsChildOf+0x0000000000000015)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter1: ffffffffffffffff
Attempt to read from address ffffffffffffffff

link text

Crash while using Sync. Remove[link text][1]SpeedTreeWind again. Full dmp post analysis is attached to this post using WinDBG available on Microsoft store for free.

EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 00007ffb8b704abf (UE4Editor_Engine!FStaticMeshSceneProxy::RemoveSpeedTreeWind+0x00000000000000bf)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: 0000003e000000a5
Attempt to read from address 0000003e000000a5

[link text][2]

[1]:300110- [2]: 299895-full-dmp-post-analysis-using-windbgpreview.txt (7.65 KB)

Four crashes in a row. Load Unreal, sync, crash, load unreal, sync, crash, etc. All with SpeedTreeWind.

Full dmp post analysis for one of these is attached to this post using WinDBG available on Microsoft store for free

EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 00007ff9e2d34abf (UE4Editor_Engine!FStaticMeshSceneProxy::RemoveSpeedTreeWind+0x00000000000000bf)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter1: 000002a9d1d41000
Attempt to read from address 000002a9d1d41000link text

Today I could not get Unreal to sync without crashing until I re-downloaded a fresh working copy. I have verified no SSD errors, source control source disk errors, or errors with the project other than what were mentioned at the beginning of this thread.

Freshly load up Unreal Engine, Sync, Crash, Load back up, Sync, Crash. RemoveSpeedTreeWind is the culprit for all crashes today. Full dmp content attachedlink text

Hello,

We’ve recently made a switch to a new bug reporting method using a more structured form. Please visit the link below for more details and report the issue using the new Bug Submission Form. Feel free to continue to use this thread for community discussion around the issue.

https://epicsupport.force.com/unrealengine/s/

Thanks

Hi SamWise. Thank you for responding.
To ensure I am doing this correctly; The engine bubbles up a crash submission to be filled out. The crash and session data (if we choose to send it) is sent to Epic. With that said, I have a couple questions;

  1. If we fill out the bubbled up crash window and send it to epic, should we continue to fill out the form you provided?
  2. If #1 is true, should we fill out this form for every crash related to this issue? Say I have 10 crashes in a day while syncing; should I submit the form you provided once for each crash?

Thank you.

-Erol

Thanks for moving to a new bug reporting method and losing this bug which STILL exists in unreal 5 preview, resulting in running out of memory when simply editing maps