Version 5.4.2, Lightmass building fails on Linux (signal 6 because of assertion failure)

I’m following an online course and it told me to install a free asset pack from the marketplace (Modular Building Set).

I used Lutris do run the Epic Games Store application, and added the asset to a Windows 5.4.2 installation, and then migrated to my Linux project directory.

When I open the demo scene I get a message that the lighting needs to be rebuilt, so I go to the Build menu and select Build Lighting Only. It starts and stays on zero percent… Forever.

That’s because the build process crashed:

Failed to find game directory: /home/.../UnrealEngine-5.4.2-release/UnrealLightmass/Binaries
Stats thread started at 0.052648
ICU TimeZone Detection - Raw Offset: +1:00, Platform Override: ''
Session CrashGUID >====================================================
         Session CrashGUID >   UECC-Linux-CB6D2C4727BF4B5DA1A741ADEE2A767B
         Session CrashGUID >====================================================
No local boot hotfix file found at: [../../../Engine/Programs/UnrealLightmass/Saved/PersistentDownloadDir/HotfixForNextBoot.txt]
Mounting Engine plugin UdpMessaging
ExecutableName: UnrealLightmass
Build: UE5-CL-0
Platform=LinuxEditor
MachineId=1b2ff247b8d64777b9d6a839bc8f8d58-000003e8
DeviceId=
Engine Version: 5.4.2-0+UE5
Compatible Engine Version: 5.4.0-0+UE5
Net CL: 0
OS: Ubuntu 24.04 LTS (6.8.0-38-generic), CPU: Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz, GPU: NVIDIA GeForce RTX 4080 (NVIDIA UNIX x86_64 Kernel Module  535.183.06  Wed Jun 26 06:46:07 UTC 2024)
Compiled (64-bit): Jul  8 2024 00:15:59
Architecture: x64
Compiled with Clang: 16.0.6 (github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
Build Configuration: Development
Branch Name: UE5
Command Line: CA2A276F467C461D86BB93E7BBBA7125 -Messaging -nostdout
Base Directory: /home/.../UnrealEngine-5.4.2-release/Engine/Binaries/Linux/
Allocator: Mimalloc
Installed Engine Build: 0
This binary is optimized with LTO: no, PGO: no, instrumented for PGO data collection: no
Number of dev versions registered: 36
  Dev-Blueprints (B0D832E4-1F89-4F0D-ACCF-7EB736FD4AA2): 10
  Dev-Build (E1C64328-A22C-4D53-A36C-8E866417BD8C): 0
  Dev-Core (375EC13C-06E4-48FB-B500-84F0262A717E): 4
  Dev-Editor (E4B068ED-F494-42E9-A231-DA0B2E46BB41): 40
  Dev-Framework (CFFC743F-43B0-4480-9391-14DF171D2073): 37
  Dev-Mobile (B02B49B5-BB20-44E9-A304-32B752E40360): 3
  Dev-Networking (A4E4105C-59A1-49B5-A7C5-40C4547EDFEE): 0
  Dev-Online (39C831C9-5AE6-47DC-9A44-9C173E1C8E7C): 0
  Dev-Physics (78F01B33-EBEA-4F98-B9B4-84EACCB95AA2): 20
  Dev-Platform (6631380F-2D4D-43E0-8009-CF276956A95A): 0
  Dev-Rendering (12F88B9F-8875-4AFC-A67C-D90C383ABD29): 48
  Dev-Sequencer (7B5AE74C-D270-4C10-A958-57980B212A5A): 13
  Dev-VR (D7296918-1DD6-4BDD-9DE2-64A83CC13884): 3
  Dev-LoadTimes (C2A15278-BFE7-4AFE-6C17-90FF531DF755): 1
  Private-Geometry (6EACA3D4-40EC-4CC1-B786-8BED09428FC5): 3
  Dev-AnimPhys (29E575DD-E0A3-4627-9D10-D276232CDCEA): 17
  Dev-Anim (AF43A65D-7FD3-4947-9873-3E8ED9C1BB05): 15
  Dev-ReflectionCapture (6B266CEC-1EC7-4B8F-A30B-E4D90942FC07): 1
  Dev-Automation (0DF73D61-A23F-47EA-B727-89E90C41499A): 1
  FortniteMain (601D1886-AC64-4F84-AA16-D3DE0DEAC7D6): 134
  FortniteValkyrie (8DBC2C5B-54A7-43E0-A768-FCBB7DA29060): 8
  FortniteSeason (5B4C06B7-2463-4AF8-805B-BF70CDF5D0DD): 12
  FortniteRelease (E7086368-6B23-4C58-8439-1B7016265E91): 13
  Dev-Enterprise (9DFFBCD6-494F-0158-E221-12823C92A888): 10
  Dev-Niagara (F2AED0AC-9AFE-416F-8664-AA7FFA26D6FC): 1
  Dev-Destruction (174F1F0B-B4C6-45A5-B13F-2EE8D0FB917D): 10
  Dev-Physics-Ext (35F94A83-E258-406C-A318-09F59610247C): 41
  Dev-PhysicsMaterial-Chaos (B68FC16E-8B1B-42E2-B453-215C058844FE): 1
  Dev-CineCamera (B2E18506-4273-CFC2-A54E-F4BB758BBA07): 1
  Dev-VirtualProduction (64F58936-FD1B-42BA-BA96-7289D5D0FA4E): 1
  UE5-Main (697DD581-E64F-41AB-AA4A-51ECBEB7B628): 119
  UE5-Release (D89B5E42-24BD-4D46-8412-ACA8DF641779): 51
  UE5-PrivateFrosty (59DA5D52-1232-4948-B878-597870B8E98B): 8
  UE5-Dev-Cooker (26075A32-730F-4708-88E9-8C32F1599D05): 0
  Dev-MediaFramework (6F0ED827-A609-4895-9C91-998D90180EA4): 2
  UE5-Dev-LWCRendering (30D58BE3-95EA-4282-A6E3-B159D8EBB06A): 1
Presizing for max 100000 objects, including 0 objects not considered by GC, pre-allocating 0 bytes for permanent pool.
Object subsystem initialized
Applying CVar settings from Section [Startup] File [../../../Engine/Config/ConsoleVariables.ini]
CVar [[r.DumpShaderDebugInfo:2]] deferred - dummy variable created
CVar [[r.Shaders.WarningsAsErrors:0 ;; 0: off, 1: global shaders, 2: all]] deferred - dummy variable created
CVar [[p.chaos.AllowCreatePhysxBodies:1]] deferred - dummy variable created
CVar [[fx.SkipVectorVMBackendOptimizations:1]] deferred - dummy variable created
Applying CVar settings from Section [Startup_Linux] File [../../../Engine/Config/ConsoleVariables.ini]
Applying CVar settings from Section [ConsoleVariables] File [Engine]
Set CVar [[memory.MemoryPressureCriticalThresholdMB:512]]
CVar [[g.TimeoutForBlockOnRenderFence:60000]] deferred - dummy variable created
Unix hardware info:
 - we are the first instance of this executable
 - this process' id (pid) is 69249, parent process' id (ppid) is 68021
 - we are not running under debugger
 - machine network name is '...'
 - user name is '...' (...)
 - we're logged in locally
 - we're running with rendering
 - CPU: GenuineIntel 'Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz' (signature: 0xA0655)
 - Number of physical cores available for the process: 10
 - Number of logical cores available for the process: 20
 - GPU Brand Info: NVIDIA GeForce RTX 4080 (NVIDIA UNIX x86_64 Kernel Module  535.183.06  Wed Jun 26 06:46:07 UTC 2024)
 - Memory allocator used: Mimalloc
 - This is an internal build.
Skipped benchmarking clocks because the engine is running in a standalone program mode - CLOCK_MONOTONIC will be used.
Unix-specific commandline switches:
 -ansimalloc - use malloc()/free() from libc (useful for tools like valgrind and electric fence)
 -jemalloc - use jemalloc for all memory allocation
 -binnedmalloc - use binned malloc  for all memory allocation
 -filemapcachesize=NUMBER - set the size for case-sensitive file mapping cache
 -useksm - uses kernel same-page mapping (KSM) for mapped memory (OFF)
 -ksmmergeall - marks all mmap'd memory pages suitable for KSM (OFF)
 -preloadmodulesymbols - Loads the main module symbols file into memory (OFF)
 -sigdfl=SIGNAL - Allows a specific signal to be set to its default handler rather then ignoring the signal
 -crashhandlerstacksize - Allows setting crash handler stack sizes (204800)
 -noexclusivelockonwrite - disables marking files created by the engine as exclusive locked while the engine has them opened
 -httpproxy=ADDRESS:PORT - redirects HTTP requests to a proxy (only supported if compiled with libcurl)
 -reuseconn - allow libcurl to reuse HTTP connections (only matters if compiled with libcurl)
 -virtmemkb=NUMBER - sets process virtual memory (address space) limit (overrides VirtualMemoryLimitInKB value from .ini)
 -allowsyscallfilterfile=PATH_TO_FILE - sets up a system call filter allow list. any invalid syscall in this list *will* cause a crash
 - Physical RAM available (not considering process quota): 126 GB (128713 MB, 131803100 KB, 134966374400 bytes)
 - VirtualMemoryAllocator pools will grow at scale 1
 - MemoryRangeDecommit() will be a no-op (re-run with -vmapoolevict to change)
 - PageSize 4096
 - BinnedPageSize 65536
288 objects as part of root set at end of initial load.
48456 out of 0 bytes used by permanent object pool.
CloseDisregardForGC: 0/0 objects in disregard for GC pool
Using OS detected language (en-US).
Using OS detected locale (en-US).
No specific localization for 'en-US' exists, so 'en' will be used for the language.
Using OS detected language (en-US).
Using OS detected locale (en-US).
No localization for 'en-US' exists, so 'en' will be used for the language.
No localization for 'en-US' exists, so 'en' will be used for the locale.
Processed 2 localized package path(s) for 1 prioritized culture(s) in 0.000040 seconds
Initializing bridge on interface 0.0.0.0:0 to multicast group 230.0.0.1:6666.
Unicast socket bound to '0.0.0.0:35349'.
Added local interface '192.168.1.218' to multicast group '230.0.0.1:6666'
Added local interface '172.18.0.1' to multicast group '230.0.0.1:6666'
Added local interface '172.17.0.1' to multicast group '230.0.0.1:6666'
Lightmass Linux started on: xx. Command-line: CA2A276F467C461D86BB93E7BBBA7125 -Messaging -nostdout
Processing scene GUID: CA2A276F467C461D86BB93E7BBBA7125 with 20 threads
Building static lighting...
Skylight import processing 0.002s with CubemapSize 128
Measured CPU frequency: 3.70 GHz
FStaticLightingSystem started using GKDOPMaxTrisPerLeaf: 4
Number of texture mappings: 11614
Number of fluid mappings:   0
Number of landscape mappings:   0
Number of BSP mappings:     248
Number of static mesh instance mappings: 11614
Scene surface area calculated at 4201.480 million units (46.461% of the estimated 9042.961 million units)
Importance volume surface area calculated at 4018.635 million units (98.912% of the estimated 4062.826 million units)
Clamped the number of indirect photon paths to 20000.
Embree Build 0.1s


Collision Mesh Overview:
Num Triangles         : 1180309
MeshInfos             :     1.0Mb
UVs                   :    14.3Mb
LightmapUVs           :    14.3Mb
Embree Used Memory    :   122.9Mb


Processing...
EmitDirectPhotons complete, 0.377 million photons emitted in 0.0 seconds
Built photon segment map in 0.0 seconds
EmitIndirectPhotons complete, 2.411 million photons emitted in 0.9 seconds
Marking Irradiance Photons complete, 0.465 million photons marked in 0.0 seconds
Caching Irradiance Photons complete, 5.192 million cache samples in 2.0 seconds
Calculate Irradiance Photons complete, 0.351 million irradiance calculations in 1.0 seconds
UnrealLightmass: /home/bschaefer/UnrealEngine/Engine/Source/ThirdParty/Intel/Embree/Embree2140/src/kernels/bvh/bvh_intersector1.cpp:62: static void embree::avx2::BVHNIntersector1<8, 1, false, embree::avx2::ArrayIntersector1<embree::avx2::TriangleMIntersector1Moeller<4, 4, true> > >::intersect(const embree::avx2::BVHNIntersector1::BVH *__restrict, embree::Ray &__restrict, embree::IntersectContext *) [N = 8, types = 1, robust = false, PrimitiveIntersector1 = embree::avx2::ArrayIntersector1<embree::avx2::TriangleMIntersector1Moeller<4, 4, true> >]: Assertion `ray.valid()' failed.
Signal 6 caught.
Malloc Size=262146 LargeMemoryPoolOffset=262162 
Malloc Size=262146 LargeMemoryPoolOffset=524338 
UnrealLightmass: /home/bschaefer/UnrealEngine/Engine/Source/ThirdParty/Intel/Embree/Embree2140/src/kernels/bvh/bvh_intersector1.cpp:62: static void embree::avx2::BVHNIntersector1<8, 1, false, embree::avx2::ArrayIntersector1<embree::avx2::TriangleMIntersector1Moeller<4, 4, true> > >::intersect(const embree::avx2::BVHNIntersector1::BVH *__restrict, embree::Ray &__restrict, embree::IntersectContext *) [N = 8, types = 1, robust = false, PrimitiveIntersector1 = embree::avx2::ArrayIntersector1<embree::avx2::TriangleMIntersector1Moeller<4, 4, true> >]: Assertion `ray.valid()' failed.
Signal 6 caught.
Malloc Size=65536 LargeMemoryPoolOffset=589904 

=== Lightmass crashed (Signal=6): ===

So the “crash” is because of Assertion ray.valid() failed. But why?

As seen I have quite a high-end system, with 128 GiB of RAM. The scene I try to build lighting for isn’t that large or have that many objects or lights. My settings for GI doesn’t matter, and the lighting quality is set to preview.

I have built UE from source.

What is going on? Is this an old bug? A problem in my configuration or build? Specific for Linux?


I have managed to build lighting on UE 5.3 for another project and it worked fine.