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.
Results: An Assertion is triggered when the Editor is reopened
Expected: Editor loads successfully
There's no existing public thread on this issue, so head over toAnswerHub just mention UE-78306 in the post.