Description

The project consists of 2 modules, "ReloadBug" and "DependentModule." DependentModule has a one-way dependency on ReloadBug, and ReloadBug is the primary game module. On module load, DependentModule executes a single function exported from the ReloadBug module.

When modules are recompiled and hotreloaded from the editor, their shared library files get a "-XXXX" suffix to them, to avoid overriding the original shared library files. However, these new suffixed shared libraries are still linking to the original shared library files. The evidence of this is the following:

$ ldd libUE4Editor-DependentModule-2378.so | grep ReloadBug
libUE4Editor-ReloadBug.so => /home/amoffat/Documents/Unreal Projects/ReloadBug/Binaries/Linux/./libUE4Editor-ReloadBug.so (0x00007f608c7db000)

This is the suffixed version of the "DependentModule" module (suffix -2378), but it is still linking to libUE4Editor-ReloadBug.so, the non-suffixed (old) shared library for the ReloadBug module. I believe this is the origin of the issue, and it's causing a collision between objects created from a suffixed and non-suffixed version of the ReloadBug library.

Steps to Reproduce
  1. Load attached project into the editor.
  2. When the editor starts, it will ask you to compile 2 modules, say yes
  3. After the editor loads, recompile the modules again by click the "compile" button and wait until finished.
  4. Close the editor.
  5. Re-open the editor.

Results: An Assertion is triggered when the Editor is reopened

Expected: Editor loads successfully

Have Comments or More Details?

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

2
Login to Vote

Won't Do
ComponentUE - Platform - Linux
Affects Versions4.22.3
Target Fix5.3
CreatedAug 2, 2019
ResolvedApr 18, 2023
UpdatedMay 4, 2023