Crash on Linux: FMeshDrawShaderBindings::CopyFrom / FMallocBinned2::Malloc error during rendering

Hi,

I am experiencing recurring crashes while using Unreal Engine on Linux (Ubuntu 22.04). The crash occurs during the rendering pass, specifically pointing to FMeshDrawShaderBindings::CopyFrom and FMallocBinned2::Malloc.

Context:

  • OS: Ubuntu 22.04

  • Unreal Engine Version: 4.27

  • Issue: This setup was working perfectly until about 4 days ago. Suddenly, the editor crashes whenever I try to open a level containing Cesium-based assets. It seems to fail during memory allocation within the renderer.

Crash Log Snippet:

LoginId:27465065de4b4c08b7cf7028f91c4795-000003e8
EpicAccountId:

Caught signal 11 Segmentation fault

libstdc++.so.6!__cxa_current_exception_type(+0x1b)
libstdc++.so.6!_ZN9__gnu_cxx27__verbose_terminate_handlerEv(+0x34)
libstdc++.so.6!UnknownFunction(0xae20b)
libstdc++.so.6!_ZSt9terminatev(+0x16)
libUE4Editor-Core.so!std::rethrow_exception(std::exception_ptr)(+0xd)
libUE4Editor-CesiumRuntime.so!async::detail::task_func<CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler, async::detail::continuation_exec_func<CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler, async::taskstd::exception_ptr, async::detail::fake_void, CesiumAsync::CesiumImpl::CatchFunction<Cesium3DTilesSelection::TilesetContentManager::TilesetContentManager(Cesium3DTilesSelection::TilesetExternals const&, Cesium3DTilesSelection::TilesetOptions const&, Cesium3DTilesSelection::RasterOverlayCollection&&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)::$_2, void, CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler, async::task&&>::operator()(async::task&&)::‘lambda’(std::exception_ptr&&), std::__1::integral_constant<bool, true>, false>, async::detail::fake_void>::run(async::detail::task_base*)()
libUE4Editor-CesiumRuntime.so!CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler::schedule(async::task_run_handle) [/home/ofm/Documents/UnrealProjects/MyCitySim/Plugins/CesiumForUnreal/CesiumForUnreal/Source/ThirdParty/include/CesiumAsync/Impl/ImmediateScheduler.h:22]
libUE4Editor-CesiumRuntime.so!void async::detail::task_base::run_continuation<CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler >(CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler&, async::detail::ref_count_ptrasync::detail::task_base&&) [/home/ofm/Documents/UnrealProjects/MyCitySim/Plugins/CesiumForUnreal/CesiumForUnreal/Source/ThirdParty/include/async++/task_base.h:101]
libUE4Editor-CesiumRuntime.so!async::detail::task_func<async::detail::inline_scheduler_impl, async::detail::continuation_exec_func<async::detail::inline_scheduler_impl, async::task, async::detail::fake_void, CesiumAsync::CesiumImpl::CatchFunction<Cesium3DTilesSelection::TilesetContentManager::TilesetContentManager(Cesium3DTilesSelection::TilesetExternals const&, Cesium3DTilesSelection::TilesetOptions const&, Cesium3DTilesSelection::RasterOverlayCollection&&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)::$_2, void, CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler, async::task&&>, std::__1::integral_constant<bool, false>, true>, async::detail::fake_void>::run(async::detail::task_base*)()
libUE4Editor-CesiumRuntime.so!async::detail::task_func<async::detail::inline_scheduler_impl, async::detail::continuation_exec_func<async::detail::inline_scheduler_impl, async::task, async::detail::fake_void, CesiumAsync::CesiumImpl::CatchFunction<Cesium3DTilesSelection::TilesetContentManager::TilesetContentManager(Cesium3DTilesSelection::TilesetExternals const&, Cesium3DTilesSelection::TilesetOptions const&, Cesium3DTilesSelection::RasterOverlayCollection&&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)::$_2, void, CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler, async::task&&>, std::__1::integral_constant<bool, false>, true>, async::detail::fake_void>::schedule(async::detail::task_base*, async::detail::ref_count_ptrasync::detail::task_base)()
libUE4Editor-CesiumRuntime.so!void async::detail::continuation_vector::flush_and_lock<async::detail::task_base::run_continuations()::‘lambda’(async::detail::ref_count_ptrasync::detail::task_base)>(async::detail::task_base::run_continuations()::‘lambda’(async::detail::ref_count_ptrasync::detail::task_base)&&) [/home/ofm/Documents/UnrealProjects/MyCitySim/Plugins/CesiumForUnreal/CesiumForUnreal/Source/ThirdParty/include/async++/continuation_vector.h:219]
libUE4Editor-CesiumRuntime.so!async::detail::task_func<CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler, async::detail::continuation_exec_func<CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler, async::task<Cesium3DTilesSelection::TilesetContentLoaderResultCesium3DTilesSelection::TilesetContentLoader >, async::detail::fake_void, Cesium3DTilesSelection::TilesetContentManager::TilesetContentManager(Cesium3DTilesSelection::TilesetExternals const&, Cesium3DTilesSelection::TilesetOptions const&, Cesium3DTilesSelection::RasterOverlayCollection&&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)::$_1, std::__1::integral_constant<bool, true>, false>, async::detail::fake_void>::cancel(async::detail::task_base*, std::exception_ptr&&)()
libUE4Editor-CesiumRuntime.so!async::detail::task_func<CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler, async::detail::continuation_exec_func<CesiumAsync::CesiumImpl::ImmediateSchedulerCesiumAsync::CesiumImpl::QueuedScheduler, async::task<Cesium3DTilesSelection::TilesetContentLoaderResultCesium3DTilesSelection::TilesetContentLoader >, async::detail::fake_void, Cesium3DTilesSelection::TilesetContentManager::TilesetContentManager(Cesium3DTilesSelection::TilesetExternals const&, Cesium3DTilesSelection::TilesetOptions const&, Cesium3DTilesSelection::RasterOverlayCollection&&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)::$_1, std::__1::integral_constant<bool, true>, false>, async::detail::fake_void>::run(async::detail::task_base*)()
libUE4Editor-CesiumRuntime.so!async::fifo_scheduler::try_run_one_task()()
libUE4Editor-CesiumRuntime.so!async::fifo_scheduler::run_all_tasks()()
libUE4Editor-CesiumRuntime.so!CesiumAsync::CesiumImpl::QueuedScheduler::dispatchQueuedContinuations()()
libUE4Editor-CesiumRuntime.so!Cesium3DTilesSelection::Tileset::updateView(std::__1::vector<Cesium3DTilesSelection::ViewState, std::__1::allocatorCesium3DTilesSelection::ViewState > const&, float)()
libUE4Editor-CesiumRuntime.so!ACesium3DTileset::Tick(float) [/home/ofm/Documents/UnrealProjects/MyCitySim/Plugins/CesiumForUnreal/CesiumForUnreal/Source/CesiumRuntime/Private/Cesium3DTileset.cpp:1944]
libUE4Editor-Engine.so!AActor::TickActor(float, ELevelTick, FActorTickFunction&) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Engine/Private/Actor.cpp:1090]
libUE4Editor-Engine.so!FActorTickFunction::ExecuteTick(float, ELevelTick, ENamedThreads::Type, TRefCountPtr const&) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Engine/Private/Actor.cpp:172]
libUE4Editor-Engine.so!FTickFunctionTask::DoTask(ENamedThreads::Type, TRefCountPtr const&) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Engine/Private/TickTaskManager.cpp:284]
libUE4Editor-Engine.so!TGraphTask::ExecuteTask(TArray<FBaseGraphTask*, TSizedDefaultAllocator<32> >&, ENamedThreads::Type) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Core/Public/Async/TaskGraphInterfaces.h:886]
libUE4Editor-Core.so!FNamedTaskThread::ProcessTasksNamedThread(int, bool) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Core/Private/Async/TaskGraph.cpp:710]
libUE4Editor-Core.so!FNamedTaskThread::ProcessTasksUntilQuit(int) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Core/Private/Async/TaskGraph.cpp:601]
libUE4Editor-Core.so!FTaskGraphImplementation::WaitUntilTasksComplete(TArray<TRefCountPtr, TInlineAllocator<4u, TSizedDefaultAllocator<32> > > const&, ENamedThreads::Type) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Core/Private/Async/TaskGraph.cpp:1531]
libUE4Editor-Engine.so!FTickTaskSequencer::ReleaseTickGroup(ETickingGroup, bool) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Engine/Private/TickTaskManager.cpp:563]
libUE4Editor-Engine.so!FTickTaskManager::RunTickGroup(ETickingGroup, bool) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Engine/Private/TickTaskManager.cpp:1584]
libUE4Editor-Engine.so!UWorld::Tick(ELevelTick, float) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Engine/Private/LevelTick.cpp:1610]
libUE4Editor-UnrealEd.so!UEditorEngine::Tick(float, bool) [/home/ofm/unreal/UnrealEngine/Engine/Source/Editor/UnrealEd/Private/EditorEngine.cpp:1533]
libUE4Editor-UnrealEd.so!UUnrealEdEngine::Tick(float, bool) [/home/ofm/unreal/UnrealEngine/Engine/Source/Editor/UnrealEd/Private/UnrealEdEngine.cpp:423]
UE4Editor!FEngineLoop::Tick() [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Launch/Private/LaunchEngineLoop.cpp:4915]
UE4Editor!GuardedMain(char16_t const*) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Launch/Private/Launch.cpp:180]
libUE4Editor-UnixCommonStartup.so!CommonUnixMain(int, char**, int ()(char16_t const), void (*)()) [/home/ofm/unreal/UnrealEngine/Engine/Source/Runtime/Unix/UnixCommonStartup/Private/UnixCommonStartup.cpp:264]
libc.so.6!UnknownFunction(0x29d8f)
libc.so.6!__libc_start_main(+0x7f)
UE4Editor!_start()

Could you please help me identify why this memory allocation failure is happening in the renderer? Since this was working fine previously, I am wondering if there’s a specific rendering setting or a recent conflict that could be causing this.

Any advice or troubleshooting steps would be greatly appreciated. Thanks!

Additionally, school network only not worked.. another network was fine