Satisfactory Dedicated Server
Hello, I'm trying to run a Satisfactory Dedicated Server in an arm64 VM running in the cloud. Using Box86 for the steamcmd and Box64 for the dedicated server.
When starting the server, Box64 kicks in, a lot of 'Using emulated ...' logs get printed, but at one point it always halts and nothing happens anymore. The process fully blocks the cpu core.
The terminal output: terminal output.txt
I have pushed some major changes to the elfloader of box64. Can you try again, I think it has improved things.
Sorry but I'm unable to try again, because I have lost access to that VM (because I have a new boot drive and didn't copy the ssh key) and I cannot create a new one right now because Oracle Cloud seems to be out of capacity for free VMs. I don't have any arm64 CPUs at home.
I wouldn't have actually thought that this issue would be addressed at sometime. I was just playing around trying to get a free Satisfactory server running.
I can try if I can spin up a new VM in the next days, but I don't know how long it takes for Oracle Cloud to create new capacity, else I don't have any ways of testing this.
Thanks for replying though!
I have a pi at home I could totally test this.
This seems to be fixed, the server starts fine now. However, it immediately crashes after joining.
I have two different crash logs so far, here are the parts that I deemed to be relevant:
Crash Log 1
[2024.03.12-01.46.48:147][509]LogNavigationDataBuild: Display: ProcessTileTasksAndGetUpdatedTiles build time: 23.33s
[2024.03.12-01.46.49:450][548]LogNavigationDataBuild: Display: ProcessTileTasksAndGetUpdatedTiles build time: 24.64s
[2024.03.12-01.46.51:122][598]LogNavigationDataBuild: Display: ProcessTileTasksAndGetUpdatedTiles build time: 26.31s
[2024.03.12-01.46.52:230][631]LogDTLSHandler: Error: DoHandshake: Handshaking failed with result: -1 error: 1
[2024.03.12-01.46.53:193][660]LogNavigationDataBuild: Display: ProcessTileTasksAndGetUpdatedTiles build time: 28.38s
[2024.03.12-01.46.55:064][716]LogNavigationDataBuild: Display: ProcessTileTasksAndGetUpdatedTiles build time: 30.25s
Assertion failed: !bShouldEnforceAllocMarks || NumMarks > 0 [File:Runtime/Core/Public\Misc/MemStack.h] [Line: 122]
[2024.03.12-01.46.55:751][736]LogCore: Error: appError called: Assertion failed: !bShouldEnforceAllocMarks || NumMarks > 0 [File:Runtime/Core/Public\Misc/MemStack.h] [Line: 122]
Signal 11 caught.
Malloc Size=262146 LargeMemoryPoolOffset=262162
CommonUnixCrashHandler: Signal=11
[2024.03.12-01.46.55:762][736]LogCore: === Critical error: ===
Unhandled Exception: SIGSEGV: invalid attempt to read memory at address 0x0000000000000003
[2024.03.12-01.46.55:766][736]LogCore: Assertion failed: !bShouldEnforceAllocMarks || NumMarks > 0 [File:Runtime/Core/Public\Misc/MemStack.h] [Line: 122]
0x00007fff46142605 libUnrealServer-AnimGraphRuntime-Linux-Shipping.so!TArray<UE::Math::TTransform<double>, TMemStackAllocator<0u> >::ResizeTo(int) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/Runtime/Core/Public/Containers/Array.h:2964]
0x00007fff46138bee libUnrealServer-AnimGraphRuntime-Linux-Shipping.so!FBaseCompactPose<TMemStackAllocator<0u> >::SetBoneContainer(FBoneContainer const*) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/Runtime/Engine/Public/BonePose.h:153]
0x00007fff460ddacc libUnrealServer-AnimGraphRuntime-Linux-Shipping.so!FAnimNode_RandomPlayer::Evaluate_AnyThread(FPoseContext&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/AnimGraphRuntime/Private/AnimNodes/AnimNode_RandomPlayer.cpp:290]
0x00007fff0355fe99 libUnrealServer-Engine-Linux-Shipping.so!FAnimNode_Root::Evaluate_AnyThread(FPoseContext&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Animation/AnimNode_Root.cpp:35]
0x00007fff03566ae8 libUnrealServer-Engine-Linux-Shipping.so!FAnimNode_StateMachine::Evaluate_AnyThread(FPoseContext&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Animation/AnimNode_StateMachine.cpp:886]
0x00007fff0355fe99 libUnrealServer-Engine-Linux-Shipping.so!FAnimNode_Root::Evaluate_AnyThread(FPoseContext&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Animation/AnimNode_Root.cpp:35]
0x00007fff03509aea libUnrealServer-Engine-Linux-Shipping.so!UAnimInstance::ParallelEvaluateAnimation(bool, USkeletalMesh const*, FParallelEvaluationData&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Animation/AnimInstance.cpp:824]
0x00007fff0385d116 libUnrealServer-Engine-Linux-Shipping.so!USkeletalMeshComponent::PerformAnimationProcessing(USkeletalMesh const*, UAnimInstance*, bool, TArray<UE::Math::TTransform<double>, TSizedDefaultAllocator<32> >&, TArray<UE::Math::TTransform<double>, TSizedDefaultAllocator<32> >&, UE::Math::TVector<double>&, FBlendedHeapCurve&, UE::Anim::FMeshAttributeContainer&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Components/SkeletalMeshComponent.cpp:2078]
0x00007fff0385ff8a libUnrealServer-Engine-Linux-Shipping.so!USkeletalMeshComponent::ParallelAnimationEvaluation() [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Components/SkeletalMeshComponent.cpp:4019]
0x00007fff038b85f8 libUnrealServer-Engine-Linux-Shipping.so!TGraphTask<FParallelAnimationEvaluationTask>::ExecuteTask(TArray<FBaseGraphTask*, TSizedDefaultAllocator<32> >&, ENamedThreads::Type, bool) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/Runtime/Core/Public/Async/TaskGraphInterfaces.h:1310]
0x00007fff004610cd libUnrealServer-Core-Linux-Shipping.so!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask* (bool), 48u>::TTaskDelegateImpl<void LowLevelTasks::FTask::Init<FTaskGraphCompatibilityImplementation::QueueTask(FBaseGraphTask*, bool, ENamedThreads::Type, ENamedThreads::Type)::'lambda'()>(char16_t const*, LowLevelTasks::ETaskPriority, FTaskGraphCompatibilityImplementation::QueueTask(FBaseGraphTask*, bool, ENamedThreads::Type, ENamedThreads::Type)::'lambda'()&&, LowLevelTasks::ETaskFlags)::'lambda'(bool), false>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask* (bool), 48u>&, void*, unsigned int, bool) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:171]
0x00007fff004542e9 libUnrealServer-Core-Linux-Shipping.so!LowLevelTasks::FScheduler::ExecuteTask(LowLevelTasks::FTask*&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Core/Private/Async/Fundamental/Scheduler.cpp:150]
0x00007fff00422e89 libUnrealServer-Core-Linux-Shipping.so!LowLevelTasks::FScheduler::WorkerMain(LowLevelTasks::FSleepEvent*, LowLevelTasks::TLocalQueueRegistry<1024u>::TLocalQueue*, unsigned int, bool) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Core/Private/Async/Fundamental/Scheduler.cpp:378]
0x00007fff0053089f libUnrealServer-Co
0x9625940000000000 !UnknownFunction()
[2024.03.12-01.46.55:772][736]LogExit: Executing StaticShutdownAfterError
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
0141|SIGSEGV @0xffffbe970a10 (???(/lib/aarch64-linux-gnu/libc.so.6+0x80a10)) (x64pc=0x409b3/???:"???", rsp=0x64a5dc78, stack=0xffffb6979000:0xffffb6b79000 own=0xffffb6979000 fp=0x7fff46142605), for accessing 0x3e800000084 (code=-6/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x0000000500000005 RSP-0x18:0x0000000064a5e7e0 RSP-0x10:0x00000000393ea490 RSP-0x08:0x0000000000000724
RSP+0x00:0x00007fff0073fa7d RSP+0x08:0x0000000000000000 RSP+0x10:0x0000000000000000 RSP+0x18:0x0000000000000000
RAX:0x0000000000000000 RCX:0x0000000000000000 RDX:0x0000000000000000 RBX:0x0000000000230350
RSP:0x0000000064a5dc78 RBP:0x00007fff46142605 RSI:0x0000000064a5ddd0 RDI:0x000000000000000b
R8:0x00007fff00267ea0 R9:0x0000000000000000 R10:0x0000000000000000 R11:0x0000000000000000
R12:0x0000000064a62ba8 R13:0x0000000000000000 R14:0x0000000064a5e7e0 R15:0x000000000000000b
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053
Segmentation fault (core dumped)
Crash Log 2
[2024.03.12-01.50.43:332][513]LogBeacon: OnlineBeaconHost_2147481744[IpConnection_2147479961]: Handshake complete.
[2024.03.12-01.50.46:176][598]LogAkAudio: Warning: UAkGameplayStatics::StopActor: Could not retrieve audio device.
Assertion failed: Index >= 0 && Index < MaxElements [File:Runtime/CoreUObject/Public\UObject/UObjectArray.h] [Line: 388]
[2024.03.12-01.51.16:132][598]LogCore: Error: appError called: Assertion failed: Index >= 0 && Index < MaxElements [File:Runtime/CoreUObject/Public\UObject/UObjectArray.h] [Line: 388]
Signal 11 caught.
Malloc Size=262146 LargeMemoryPoolOffset=262162
CommonUnixCrashHandler: Signal=11
[2024.03.12-01.51.16:143][598]LogCore: === Critical error: ===
Unhandled Exception: SIGSEGV: invalid attempt to read memory at address 0x0000000000000003
[2024.03.12-01.51.16:147][598]LogCore: Assertion failed: Index >= 0 && Index < MaxElements [File:Runtime/CoreUObject/Public\UObject/UObjectArray.h] [Line: 388]
0x00007fff014f01b6 libUnrealServer-CoreUObject-Linux-Shipping.so!FChunkedFixedUObjectArray::ExpandChunksToIndex(int) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/Runtime/CoreUObject/Public/UObject/UObjectArray.h:388]
0x00007fff014d9075 libUnrealServer-CoreUObject-Linux-Shipping.so!FUObjectArray::AllocateUObjectIndex(UObjectBase*, int, int) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/CoreUObject/Private/UObject/UObjectArray.cpp:229]
0x00007fff014d98b5 libUnrealServer-CoreUObject-Linux-Shipping.so!UObjectBase::AddObject(FName, EInternalObjectFlags, int, int) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/CoreUObject/Private/UObject/UObjectBase.cpp:221]
0x00007fff014e4661 libUnrealServer-CoreUObject-Linux-Shipping.so!StaticAllocateObject(UClass const*, UObject*, FName, EObjectFlags, EInternalObjectFlags, bool, bool*, UPackage*) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/CoreUObject/Private/UObject/UObjectGlobals.cpp:3422]
0x00007fff014e35bc libUnrealServer-CoreUObject-Linux-Shipping.so!StaticConstructObject_Internal(FStaticConstructObjectParameters const&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/CoreUObject/Private/UObject/UObjectGlobals.cpp:4321]
0x00007fffcb68eef5 libUnrealServer-FactoryGame-Linux-Shipping.so!AFGConveyorBeltHologram::UpdateSplineComponent() [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./../../FactoryGame/Source/FactoryGame/Private/Hologram/FGConveyorBeltHologram.cpp:1418]
0x00007fffcb688fe8 libUnrealServer-FactoryGame-Linux-Shipping.so!AFGConveyorBeltHologram::BeginPlay() [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./../../FactoryGame/Source/FactoryGame/Private/Hologram/FGConveyorBeltHologram.cpp:55]
0x00007fff034629b6 libUnrealServer-Engine-Linux-Shipping.so!AActor::DispatchBeginPlay(bool) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Actor.cpp:4172]
0x00007fff034623c5 libUnrealServer-Engine-Linux-Shipping.so!AActor::PostActorConstruction() [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Actor.cpp:3960]
0x00007fff03454050 libUnrealServer-Engine-Linux-Shipping.so!AActor::FinishSpawning(UE::Math::TTransform<double> const&, bool, FComponentInstanceDataCache const*, ESpawnActorScaleMethod) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Actor.cpp:3858]
0x00007fffcb6bdc03 libUnrealServer-FactoryGame-Linux-Shipping.so!AFGHologram::SpawnHologramFromRecipe(TSubclassOf<UFGRecipe>, AFGHologram*, AActor*, UE::Math::TVector<double>, APawn*) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./../../FactoryGame/Source/FactoryGame/Private/Hologram/FGHologram.cpp:165]
0x00007fffcb35a7e5 libUnrealServer-FactoryGame-Linux-Shipping.so!UFGBuildGunStateBuild::InternalSpawnHologram() [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./../../FactoryGame/Source/FactoryGame/Private/Equipment/FGBuildGunBuild.cpp:1593]
0x00007fffcb358dd6 libUnrealServer-FactoryGame-Linux-Shipping.so!UFGBuildGunStateBuild::SpawnHologram() [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./../../FactoryGame/Source/FactoryGame/Private/Equipment/FGBuildGunBuild.cpp:1178]
0x00007fffcb3550f0 libUnrealServer-FactoryGame-Linux-Shipping.so!UFGBuildGunStateBuild::SetActiveRecipe(TSubclassOf<UFGRecipe>) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./../../FactoryGame/Source/FactoryGame/Private/Equipment/FGBuildGunBuild.cpp:1038]
0x00007fffcb352431 libUnrealServer-FactoryGame-Linux-Shipping.so!AFGBuildGun::GotoBuildState(TSubclassOf<UFGRecipe>) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./../../FactoryGame/Source/FactoryGame/Private/Equipment/FGBuildGun.cpp:1066]
0x00007fffcb035810 libUnrealServer-FactoryGame-Linux-Shipping.so!AFGBuildGun::execServer_GotoBuildState(UObject*, FFrame&, void*) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./../../FactoryGame/Intermediate/Build/Linux/UnrealServer/Inc/FactoryGame/UHT/FGBuildGun.gen.cpp:1769]
0x00007fff012cdb87 libUnrealServer-CoreUObject-Li
0x0072007400000000 !UnknownFunction()
[2024.03.12-01.51.16:153][598]LogExit: Executing StaticShutdownAfterError
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
0179|SIGSEGV @0xffffb40e0a10 (???(/lib/aarch64-linux-gnu/libc.so.6+0x80a10)) (x64pc=0x409b3/???:"???", rsp=0x63fedc78, stack=0xffffb36c0000:0xffffb3ec0000 own=(nil) fp=0x7fff014f01b6), for accessing 0x3e8000000b3 (code=-6/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x0000000500000005 RSP-0x18:0x0000000063fee7e0 RSP-0x10:0x000000003616b490 RSP-0x08:0x0000000000000724
RSP+0x00:0x00007fff0073fa7d RSP+0x08:0x0000000000000000 RSP+0x10:0x0000000000000000 RSP+0x18:0x0000000000000000
RAX:0x0000000000000000 RCX:0x0000000000000000 RDX:0x0000000000000000 RBX:0x0000000000230350
RSP:0x0000000063fedc78 RBP:0x00007fff014f01b6 RSI:0x0000000063feddd0 RDI:0x000000000000000b
R8:0x00007fff00267ea0 R9:0x0000000000000000 R10:0x0000000000000000 R11:0x0000000000000000
R12:0x0000000063ff2ba8 R13:0x0000000000000000 R14:0x0000000063fee7e0 R15:0x000000000000000b
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053
Segmentation fault (core dumped)
Please let me know if the full log (or different parts of it) are needed. Technically, this issue could be closed and I could open another one instead.
Hey @Kneemund did you get it fixed? I am currently having the same issues.
We are running on oracle free tier, arm64 ubuntu 24.04.1, running from locally compiled main branch of box64, and getting same issue on MemStack.h with Satisfactory dedi.
In fact, many dedicated servers executables, despite different engines, suffer random memory crashes, sometimes you are able to connect, only to get a random memory related crash later on, depending on each game server or each engine.
It only got worse past 6 months, that makes me worry there's a deep rooted memory bug with box64, if only i could find a lead for it.
Here's a trace build with show segv.
SEGV
[2024.09.01-12.33.46:599][571]LogNavigationDataBuild: Display: ProcessTileTasksAndGetUpdatedTiles build time: 296.91s
Assertion failed: !bShouldEnforceAllocMarks || NumMarks > 0 [File:Runtime/Core/Public\Misc/MemStack.h] [Line: 122]
[2024.09.01-12.33.52:278][738]LogCore: Error: appError called: Assertion failed: !bShouldEnforceAllocMarks || NumMarks > 0 [File:Runtime/Core/Public\Misc/MemStack.h] [Line: 122]
147956|SIGSEGV @0xe9c7b9d53fe4 (???(0xe9c7b9d53fe4)) (x64pc=0x7fff00492087/"/home/ubuntu/SatisfactoryDedicatedServer/Engine/Binaries/Linux/libUnrealServer-Core-Linux-Shipping.so/_ZN20FGenericPlatformMisc14RaiseExceptionEj + 0x97", rsp=0xe9c8483fd140, stack=0xe9c848200000:0xe9c848400000 own=0xe9c848200000 fp=0x200), for accessing 0x3 (code=1/prot=0), db=0xe9c7b9e9f120(0xe9c7b9d53fe0:0xe9c7b9d54058/0x7fff00492087:0x7fff00492094//home/ubuntu/SatisfactoryDedicatedServer/Engine/Binaries/Linux/libUnrealServer-Core-Linux-Shipping.so/_ZN20FGenericPlatformMisc14RaiseExceptionEj + 0x97:clean, hash:5fe4775e/5fe4775e) handler=0x7fff0073fee0
RAX:0x00007fff00b23900 RCX:0x0000000078eeb000 RDX:0x0000000000000000 RBX:0x0000000000000001
RSP:0x0000e9c8483fd140 RBP:0x000000009c8e1544 RSI:0x0000000000000001 RDI:0x0000000000000014
R8:0x0000000000000075 R9:0x0000e9c8483fcb48 R10:0x0000000000000000 R11:0x0000000000000000
R12:0x00007fff4607cc30 R13:0x00007fff46142605 R14:0x0000000000000000 R15:0x00007fff0b1cc968
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053
RSP-0x20:0x0000000000000000 RSP-0x18:0x00007fff0b1cc968 RSP-0x10:0x000000009c8e1544 RSP-0x08:0x00007fff00492087
RSP+0x00:0x00000005dab1f000 RSP+0x08:0x0000000000000000 RSP+0x10:0x0000000000001000 RSP+0x18:0x0000000000001000
Signal 11 caught.
Malloc Size=262146 LargeMemoryPoolOffset=262162
CommonUnixCrashHandler: Signal=11
[2024.09.01-12.33.52:291][738]LogCore: === Critical error: ===
Unhandled Exception: SIGSEGV: invalid attempt to read memory at address 0x0000000000000003
[2024.09.01-12.33.52:295][738]LogCore: Assertion failed: !bShouldEnforceAllocMarks || NumMarks > 0 [File:Runtime/Core/Public\Misc/MemStack.h] [Line: 122]
0x00007fff46142605 libUnrealServer-AnimGraphRuntime-Linux-Shipping.so!TArray<UE::Math::TTransform<double>, TMemStackAllocator<0u> >::ResizeTo(int) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/Runtime/Core/Public/Containers/Array.h:2964]
0x00007fff46138bee libUnrealServer-AnimGraphRuntime-Linux-Shipping.so!FBaseCompactPose<TMemStackAllocator<0u> >::SetBoneContainer(FBoneContainer const*) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/Runtime/Engine/Public/BonePose.h:153]
0x00007fff460ddacc libUnrealServer-AnimGraphRuntime-Linux-Shipping.so!FAnimNode_RandomPlayer::Evaluate_AnyThread(FPoseContext&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/AnimGraphRuntime/Private/AnimNodes/AnimNode_RandomPlayer.cpp:290]
0x00007fff0355fe99 libUnrealServer-Engine-Linux-Shipping.so!FAnimNode_Root::Evaluate_AnyThread(FPoseContext&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Animation/AnimNode_Root.cpp:35]
0x00007fff03566ae8 libUnrealServer-Engine-Linux-Shipping.so!FAnimNode_StateMachine::Evaluate_AnyThread(FPoseContext&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Animation/AnimNode_StateMachine.cpp:886]
0x00007fff0355fe99 libUnrealServer-Engine-Linux-Shipping.so!FAnimNode_Root::Evaluate_AnyThread(FPoseContext&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Animation/AnimNode_Root.cpp:35]
0x00007fff03509aea libUnrealServer-Engine-Linux-Shipping.so!UAnimInstance::ParallelEvaluateAnimation(bool, USkeletalMesh const*, FParallelEvaluationData&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Animation/AnimInstance.cpp:824]
0x00007fff0385d116 libUnrealServer-Engine-Linux-Shipping.so!USkeletalMeshComponent::PerformAnimationProcessing(USkeletalMesh const*, UAnimInstance*, bool, TArray<UE::Math::TTransform<double>, TSizedDefaultAllocator<32> >&, TArray<UE::Math::TTransform<double>, TSizedDefaultAllocator<32> >&, UE::Math::TVector<double>&, FBlendedHeapCurve&, UE::Anim::FMeshAttributeContainer&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Components/SkeletalMeshComponent.cpp:2078]
0x00007fff0385ff8a libUnrealServer-Engine-Linux-Shipping.so!USkeletalMeshComponent::ParallelAnimationEvaluation() [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Engine/Private/Components/SkeletalMeshComponent.cpp:4019]
0x00007fff038b85f8 libUnrealServer-Engine-Linux-Shipping.so!TGraphTask<FParallelAnimationEvaluationTask>::ExecuteTask(TArray<FBaseGraphTask*, TSizedDefaultAllocator<32> >&, ENamedThreads::Type, bool) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/Runtime/Core/Public/Async/TaskGraphInterfaces.h:1310]
0x00007fff004610cd libUnrealServer-Core-Linux-Shipping.so!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask* (bool), 48u>::TTaskDelegateImpl<void LowLevelTasks::FTask::Init<FTaskGraphCompatibilityImplementation::QueueTask(FBaseGraphTask*, bool, ENamedThreads::Type, ENamedThreads::Type)::'lambda'()>(char16_t const*, LowLevelTasks::ETaskPriority, FTaskGraphCompatibilityImplementation::QueueTask(FBaseGraphTask*, bool, ENamedThreads::Type, ENamedThreads::Type)::'lambda'()&&, LowLevelTasks::ETaskFlags)::'lambda'(bool), false>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask* (bool), 48u>&, void*, unsigned int, bool) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:171]
0x00007fff004542e9 libUnrealServer-Core-Linux-Shipping.so!LowLevelTasks::FScheduler::ExecuteTask(LowLevelTasks::FTask*&) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Core/Private/Async/Fundamental/Scheduler.cpp:150]
0x00007fff00422e89 libUnrealServer-Core-Linux-Shipping.so!LowLevelTasks::FScheduler::WorkerMain(LowLevelTasks::FSleepEvent*, LowLevelTasks::TLocalQueueRegistry<1024u>::TLocalQueue*, unsigned int, bool) [C:/BuildAgent2/work/607eee041ab2bfcf/UE4/Engine/Source/./Runtime/Core/Private/Async/Fundamental/Scheduler.cpp:378]
0x00007fff0053089f libUnrealServer-Co
0x9c8e19e000000000 !UnknownFunction()
[2024.09.01-12.33.52:301][738]LogExit: Executing StaticShutdownAfterError
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
147956|SIGSEGV @0xe9c8503f7628 (???(/lib/aarch64-linux-gnu/libc.so.6+0x87628)) (x64pc=0x409b3/"???", rsp=0x64a5da20, stack=0xe9c848200000:0xe9c848400000 own=0xe9c848200000 fp=0x7fff46142605), for accessing 0x3e9000241eb (code=-6/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x0000000500000005 RSP-0x18:0x0000000064a5e588 RSP-0x10:0x00000000436b1b60 RSP-0x08:0x0000000000000724
RSP+0x00:0x00007fff0073fa7d RSP+0x08:0x0000000000000000 RSP+0x10:0x0000000000000000 RSP+0x18:0x0000000000000000
RAX:0x0000000000000000 RCX:0x0000000000000000 RDX:0x0000000000000000 RBX:0x0000000000230350
RSP:0x0000000064a5da20 RBP:0x00007fff46142605 RSI:0x0000000064a5db78 RDI:0x000000000000000b
R8:0x00007fff00267ea0 R9:0x0000000000000000 R10:0x0000000000000000 R11:0x0000000000000000
R12:0x0000000064a62868 R13:0x0000000000000000 R14:0x0000000064a5e588 R15:0x000000000000000b
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053
Segmentation fault (core dumped)
I am using oracle free tier, arm64 ubuntu 20.04.1 and i seem to have the same problem as you Is there any update on that problem? Were you able to fix it?
Not rly. It seems to affect every unreal game though. Im not even sure its memory related, for all i know it could be caused by templatized c++ code in UE. I had a go with Ai writing me a threaded c++ allocation deallocation memory test app and it works just fine when cross compiled and ran with box64.
I'm seeing the same crash when creating a new Game on oracle, arm64 Ubuntu 22.04.5 LTS. [There is a '24.04.1 LTS' version available if that works]
It's seems that satisfactory can't run on a arm64 even through emulator, because some libraries can't be loaded through the emulator. I got the server to run, but everytime I placed a belt, the server crashed... So yeaa - sadly not playable. We gotta wait for the devs to fix this.
Hi! I tried to start a dedicated server, at some point errors like "Unimplemented Opcode" appear.
Warning, call to __cxa_thread_atexit_impl(0x7f8d3f5ec0, 0x9ebd90c0, 0x7f8d861600) ignored 17729|0x7f8d4ea151: Unimplemented Opcode (1E) 66 0F 38 31 C0 66 0F 38 31 D2 66 0F 38 31 DC 17729|0x7f8d4e3f30: Unimplemented Opcode (FF) 66 0F 3A 22 C0 01 F3 41 0F 7E 4C 24 50 66 0F 17729|0x7f85eac5b5: Unimplemented Opcode (19) 66 0F 3A 15 07 00 66 0F 3A 15 47 06 01 66 0F terminal log in the attached file box64_Satisfactory_dedsrv_errors.txt
Hi! I tried to start a dedicated server, at some point errors like "Unimplemented Opcode" appear.
Warning, call to __cxa_thread_atexit_impl(0x7f8d3f5ec0, 0x9ebd90c0, 0x7f8d861600) ignored 17729|0x7f8d4ea151: Unimplemented Opcode (1E) 66 0F 38 31 C0 66 0F 38 31 D2 66 0F 38 31 DC 17729|0x7f8d4e3f30: Unimplemented Opcode (FF) 66 0F 3A 22 C0 01 F3 41 0F 7E 4C 24 50 66 0F 17729|0x7f85eac5b5: Unimplemented Opcode (19) 66 0F 3A 15 07 00 66 0F 3A 15 47 06 01 66 0F terminal log in the attached file box64_Satisfactory_dedsrv_errors.txt
I'm not sure what version of box64 you are using, but those opcodes are implemented in latest version (both interpreter and dynarec).
I upgraded to the "latest" version on Dec 15, 2024 (v 0.3.2). I don't get the missing Opcode crash, but instead a memory allocation crash. I've just reinstalled box64 just to be sure I have the latest version and still get the memory crash.
Box64 Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS SHA1 SHA2 PageSize:4096 Running on Neoverse-N1 with 4 cores Will use hardware counter measured at 25.0 MHz emulating 3.2 GHz Params database has 98 entries Box64 with Dynarec v0.3.3 691259ec built on Jan 7 2025 11:48:07 BOX64: Detected 48bits at least of address space
System Specs CPU count: 4 Memory (GB): 24 Operating system: Canonical Ubuntu Version: 22.04.5 LTS (GNU/Linux 6.8.0-1018-oracle aarch64) Image: Canonical-Ubuntu-22.04-aarch64-2022.08.10-0
Error: Assertion failed: !bShouldEnforceAllocMarks || NumMarks > 0 [File:Runtime/Core/Public\Misc/MemStack.h] [Line: 122] Signal 11 caught. Malloc Size=262146 LargeMemoryPoolOffset=262162 CommonUnixCrashHandler: Signal=11 [2025.01.07-04.06.39:739][478]LogCore: === Critical error: === Unhandled Exception: SIGSEGV: invalid attempt to write memory at address 0x0000000000000003 Engine crash handling finished; re-raising signal 11 for the default handler. Good bye. 7393|SIGSEGV @0xeb0034d0f200 (???(/lib/aarch64-linux-gnu/libc.so.6+0x7f200)) (x64pc=0x300309b3/"???", rsp=0x6560da10, stack=0xeb002dc00000:0xeb002de00000 own=0xeb002dc00000 fp=0xffffffff), for accessing 0x3e900001cd7 (code=-6/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil) RSP-0x20:0x000000006560db58 RSP-0x18:0x000000006560e588 RSP-0x10:0x000000004dc31500 RSP-0x08:0x0000000000000735 RSP+0x00:0x00007fff0077982a RSP+0x08:0x0000000000000000 RSP+0x10:0x203a746900000000 RSP+0x18:0x0000000000000000 RAX:0x0000000000000000 RCX:0x0000000000000000 RDX:0x0000000000000000 RBX:0x0000000060610300 RSP:0x000000006560da10 RBP:0x00000000ffffffff RSI:0x000000006560db68 RDI:0x000000000000000b R8:0x000000006560d1d8 R9:0x0000eb00349ff468 R10:0x0000000000000000 R11:0x0000000000000000 R12:0x000000006560db58 R13:0x0000000000000000 R14:0x000000006560e588 R15:0x000000006560da48 ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053 x64opcode=C3 00 00 A8 60 B1 34 00 (opcode=3140041f) Segmentation fault (core dumped)
Full Console log from crash attached
Just tried again with the new version.
Box64 with Dynarec v0.3.5 30285d9e built on Mar 15 2025 14:00:33 [BOX64] Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS SHA1 SHA2 [BOX64] Running on Neoverse-N1 with 4 cores, pagesize: 4096 [BOX64] Will use hardware counter measured at 25.0 MHz emulating 3.2 GHz
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye. [BOX64] 4631|SIGSEGV @0xf4d94f03f1f0 (???(/lib/aarch64-linux-gnu/libc.so.6+0x7f1f0)) (x64pc=0x300309b3/"???", rsp=0x6560da10, stack=0xf4d947c00000:0xf4d947e00000 own=0xf4d947c00000 fp=0xffffffff), for accessing 0x3e90000120d (code=-6/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil) RSP-0x20:0x000000006560db58 RSP-0x18:0x000000006560e588 RSP-0x10:0x0000000056d9c7e0 RSP-0x08:0x0000000000000735 RSP+0x00:0x00007fff0077982a RSP+0x08:0x0000000000000000 RSP+0x10:0x203a746900000000 RSP+0x18:0x0000000000000000 RAX:0x0000000000000000 RCX:0x0000000000000000 RDX:0x0000000000000000 RBX:0x0000000060610300 RSP:0x000000006560da10 RBP:0x00000000ffffffff RSI:0x000000006560db68 RDI:0x000000000000000b R8:0x000000006560d1d8 R9:0x0000f4d94edff3e0 R10:0x0000000000000000 R11:0x0000000000000000 R12:0x000000006560db58 R13:0x0000000000000000 R14:0x000000006560e588 R15:0x000000006560da48 ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053 x64opcode=C3 00 00 A8 60 48 4E D9 (opcode=3140041f) Segmentation fault (core dumped)
Seems like the same crash is still occurring.
I also have the same crash Unhandled Exception: SIGSEGV: invalid attempt to write memory at address 0x0000000000000003
Using FEX emu instead of box64 solves the issue.
https://github.com/sa-shiro/Satisfactory-Dedicated-Server-ARM64-Docker
How is the performance with FEX though? I have read that FEX does not perform as well as box64 by a large margin and given Satisfactory (Server) itself also had problems with performance in the past...
I don't reproduce the crash on my side. I'm running on a physiscal machine (with the same Neoverse N1 CPU), running the ./FactoryServer.sh binary from steam insteallation of the Dedicated Server, and it just load.
[2025.03.20-07.30.27:775][ 0]LogNet: GameNetDriver FGDSIpNetDriver_2147482284 IpNetDriver listening on port 7777
[2025.03.20-07.30.27:780][ 0]LogWorld: Bringing World /Game/FactoryGame/Map/DedicatedserverEntry.DedicatedserverEntry up for play (max tick rate 30) at 2025.03.20-08.30.27
[2025.03.20-07.30.27:855][ 0]LogGame: Discovered 0 Remote Call Objects on AFGGameMode::InitGame
[2025.03.20-07.30.27:922][ 0]LogWorld: Bringing up level for play took: 0.145930
[2025.03.20-07.30.27:933][ 0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart
[2025.03.20-07.30.27:938][ 0]LogGame: Apply Lightweight Instances from Load took: 0.001024 seconds
[2025.03.20-07.30.28:093][ 0]LogGameState: Match State Changed from EnteringMap to WaitingToStart
[2025.03.20-07.30.28:096][ 0]LogLoad: Took 0.680808 seconds to LoadMap(/Game/FactoryGame/Map/DedicatedserverEntry)
[2025.03.20-07.30.28:103][ 0]LogGame: Telemetry, starting service.
[2025.03.20-07.30.28:103][ 0]LogGame: Warning: Telemetry, no local player found.
[2025.03.20-07.30.28:212][ 0]LogGame: Telemetry instance started without a platform.
[2025.03.20-07.30.28:327][ 0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init()
[2025.03.20-07.30.28:327][ 0]LogLoad: (Engine Initialization) Total time: 26.56 seconds
[2025.03.20-07.30.28:433][ 0]LogOnlineVoice: OSS: Voice interface disabled by config [OnlineSubsystem].bHasVoiceEnabled
[BOX64] Using emulated /data/SteamLibrary/steamapps/common/SatisfactoryDedicatedServer/Engine/Binaries/Linux/libFactoryServer-PerfCounters-Linux-Shipping.so
[2025.03.20-07.30.58:404][890]LogServer: Display: Server startup time elapsed and saving/level loading is done, auto-pause is allowed to proceed from now on (if enabled in server settings). WorldTimeSeconds = 30.07
Are you using specific command lines arguments or env. var. or other speicifc things to launch the server?
I'm just running ./FactoryServer.sh from a local steam installation too.
./steamcmd/steamcmd.sh +@sSteamCmdForcePlatformType linux +force_install_dir ~/SatisfactoryServer +login anonymous +app_update 1690800 validate +quit
I haven't made any changes to the server files - just used the game client to set the passwords and load a map.
I noticed you have your server set to "auto-pause" so maybe yours wasn't actually doing anything. I've found the server doesn't usually crash unless it is actually doing something (player joining or not on auto-pause). The same same-game/map works fine on a Windows 64-bit dedicated server.
I built box64 with cmake .. -D ARM_DYNAREC=ON -D CMAKE_BUILD_TYPE=RelWithDebInfo -D BOX32=ON -D BOX32_BINFMT=ON if that makes any difference.
My build of box64 use the "ADLINK" profile, but that should change much.
How do I put the server not in auto-pause?
All of the server management is done on the "Server" tab within the game client. The first game client that connects to the new server sets an Admin password and then can configure the server. You will need someone that owns the game to connect to your server to change that setting and to start a map.
After setting the password there will be a file created at
~/.config/Epic/FactoryGame/Saved/SaveGames/ServerSettings.7777.sav
with the server settings including which map to load at start and the auto-pause.
The savegame/maps will be in a server subfolder where the server settings are e.g. ~/.config/Epic/FactoryGame/Saved/SaveGames/server/Test.sav
If you don't have a copy of the game, I presume dropping a copy of the two files into those locations should be enough to get a server running.
I own th egame on steam. I'll try later to connect to the server and see what happens.
I don't reproduce the crash on my side. I'm running on a physiscal machine (with the same Neoverse N1 CPU), running the
./FactoryServer.shbinary from steam insteallation of the Dedicated Server, and it just load.[2025.03.20-07.30.27:775][ 0]LogNet: GameNetDriver FGDSIpNetDriver_2147482284 IpNetDriver listening on port 7777 [2025.03.20-07.30.27:780][ 0]LogWorld: Bringing World /Game/FactoryGame/Map/DedicatedserverEntry.DedicatedserverEntry up for play (max tick rate 30) at 2025.03.20-08.30.27 [2025.03.20-07.30.27:855][ 0]LogGame: Discovered 0 Remote Call Objects on AFGGameMode::InitGame [2025.03.20-07.30.27:922][ 0]LogWorld: Bringing up level for play took: 0.145930 [2025.03.20-07.30.27:933][ 0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2025.03.20-07.30.27:938][ 0]LogGame: Apply Lightweight Instances from Load took: 0.001024 seconds [2025.03.20-07.30.28:093][ 0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2025.03.20-07.30.28:096][ 0]LogLoad: Took 0.680808 seconds to LoadMap(/Game/FactoryGame/Map/DedicatedserverEntry) [2025.03.20-07.30.28:103][ 0]LogGame: Telemetry, starting service. [2025.03.20-07.30.28:103][ 0]LogGame: Warning: Telemetry, no local player found. [2025.03.20-07.30.28:212][ 0]LogGame: Telemetry instance started without a platform. [2025.03.20-07.30.28:327][ 0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2025.03.20-07.30.28:327][ 0]LogLoad: (Engine Initialization) Total time: 26.56 seconds [2025.03.20-07.30.28:433][ 0]LogOnlineVoice: OSS: Voice interface disabled by config [OnlineSubsystem].bHasVoiceEnabled [BOX64] Using emulated /data/SteamLibrary/steamapps/common/SatisfactoryDedicatedServer/Engine/Binaries/Linux/libFactoryServer-PerfCounters-Linux-Shipping.so [2025.03.20-07.30.58:404][890]LogServer: Display: Server startup time elapsed and saving/level loading is done, auto-pause is allowed to proceed from now on (if enabled in server settings). WorldTimeSeconds = 30.07Are you using specific command lines arguments or env. var. or other speicifc things to launch the server?
The server does load fine on box64, the issue occurs when you create a world using the client and try connecting to it. That cases the seg fault. As @bobthebigbat mentioned, most server management is done via client. Satisfactory server is a little weird...
How is the performance with FEX though? I have read that FEX does not perform as well as box64 by a large margin and given Satisfactory (Server) itself also had problems with performance in the past...
Was playing yesterday for ~2hours, the server crashed once but came right back (since I was running via docker compose and restart: until stopped) I couldn't catch the error that made it crash. However performance seemed to be perfectly fine, no noticeable lag, though this is with like 2 iron 1 copper and 1 limestone factories. So not a lot of stuff...
Ok, I'm reproducing the issue. I'll try debug what is happening.
I have still not found the root cause of the issue. Also, there is a randomness in the issue on my side: sometimes (like 33% of chances), it works and the server start. It make tracking the issue very complicated.
Is there some settings or somethings that would make the issue 100% reproducible?
upon a client connecting, it def always freezes the server.
I get either an Assert server side, and client lose connection, or it just init the server and everything looks good client side, and I have the recap for the server, with ping and stuffs like that.
Sorry maybe i wasn't clear enough, like u said there's likely a random component to this issue, but sometimes the server crashes with the assert (Assertion failed: !bShouldEnforceAllocMarks || NumMarks > 0) while creating the map for the first time, but always you get the server assert crash after a map has been loaded and u try to join the server loading the map with the client, it either crashes while the client is loading the map or shortly after when you are already ingame trying to do something like walk or using the inventory, but sometimes u also get server crashes after loading the map in further tries.