Environment
- Box64 version: v0.4.3 f79babc (Dynarec)
- Hardware: Oracle Cloud Ampere A1 (ARM64), Neoverse-N1, 2 cores
- OS: Ubuntu (inside Docker container
ghcr.io/pelican-eggs/yolks:box64)
- Application: Half-Life Dedicated Server (HLDS) running Counter-Strike 1.6, with Metamod-r 1.3.0.149 and AMX Mod X loaded via Box32
Description
The server crashes with SIGSEGV consistently, always inside amxmodx_mm_i386.so, in MemoryUtils::ResolveSymbol, right after AMX Mod X initializes and before any plugin loads. The crash happens whether AMX Mod X is loaded via Metamod's plugin.ini or manually. Metamod-r and other plugins (Reunion) initialize fine; only AMX Mod X triggers the crash.
Tested with two different AMX Mod X versions (1.10.0.5467 and 1.9.0.5303, both official builds) — same crash, same function, same relative offset (ResolveSymbol + 0xe4), suggesting it's not version-specific but a Box32/Box64 emulation issue with whatever memory-scanning technique AMX Mod X uses to resolve engine symbols.
Steps to reproduce
-
Run HLDS (hlds_linux, x86 32-bit binary) under Box64 with Box32 enabled, via: box64 ./hlds_linux -game cstrike -ip 0.0.0.0 -port 27015 +clientport 27005 +tv_port 27020 +map de_dust2 -maxplayers 20 -tickrate 100 -pingboost 2 +sys_ticrate 1000 +fps_max 1000
-
Ensure Metamod-r and AMX Mod X are both installed and enabled in addons/metamod/dlls/plugins.ini (or equivalent).
-
Server crashes with SIGSEGV during AMX Mod X initialization, before the first plugin loads.
What I've already tried (no effect, same crash)
BOX64_DYNAREC_SAFEFLAGS=1
BOX64_DYNAREC_BIGBLOCK=0
BOX32_DYNAREC_SAFEFLAGS=1
BOX64_DYNAREC_STRONGMEM=1
- Swapping AMX Mod X from 1.10.0.5467 to 1.9.0.5303 (official GitHub release) — identical crash
Crash log
[BOX32] Using emulated /home/container/cstrike/addons/amxmodx/dlls/amxmodx_mm_i386.so
AMX Mod X version 1.9.0.5303 Copyright (c) 2004-2015 AMX Mod X Development Team
AMX Mod X comes with ABSOLUTELY NO WARRANTY; for details type `amxx gpl'.
This is free software and you are welcome to redistribute it under
certain conditions; type 'amxx gpl' for details.
[BOX32] Using emulated cstrike/addons/amxmodx/modules/fun_amxx_i386.so
[BOX32] Using emulated cstrike/addons/amxmodx/modules/engine_amxx_i386.so
[BOX32] Using emulated cstrike/addons/amxmodx/modules/fakemeta_amxx_i386.so
[BOX32] 0014|SIGSEGV @0x1075be7bc (???(0x1075be7bc)) (x64pc=0x43a4c974/"/home/container/cstrike/addons/amxmodx/dlls/amxmodx_mm_i386.so/_ZN11MemoryUtils13ResolveSymbolEPvPKc + 0xe4", rsp=0x3081a880, stack=0x30020000:0x30820000 own=(nil) fp=0x43bd6711), for accessing 0x4 (code=1/prot=0), db=0x1075bea48(0x1075be6c0:0x1075beb5c/0x43a4c8f7:0x43a4c9c0//home/container/cstrike/addons/amxmodx/dlls/amxmodx_mm_i386.so/_ZN11MemoryUtils13ResolveSymbolEPvPKc + 0x67:clean, hash:a739055b/a739055b) handler=(nil)
RAX:0x0000000000000004 RCX:0x0000000000000000 RDX:0x000000003081aa2c RBX:0x000000005eb9e440
RSP:0x000000003081a880 RBP:0x0000000043bd6711 RSI:0x000000005eb95030 RDI:0x0000000043bd6494
R8:0x0000000000000000 R9:0x0000000000000000 R10:0x0000000000000000 R11:0x0000000000000000
R12:0x0000000000000000 R13:0x0000000000000000 R14:0x0000000000000000 R15:0x0000000000000000
ES:0x002b CS:0x0023 SS:0x002b DS:0x002b FS:0x0000 GS:0x0033 FSBASE=(nil) GSBASE=0x5e7b8e40
RSP-0x20:0x3035333100000020 RSP-0x18:0x43a4c95600000000 RSP-0x10:0x00000000fcaa9010 RSP-0x08:0xffffffff00040000
RSP+0x00:0x0000000000000020 RSP+0x08:0xffffffff00000006 RSP+0x10:0x0000000000000003 RSP+0x18:0x0000000800000000 x86opcode=8B 00 89 46 10 C7 46 14 (opcode=b940014a)
./hlds_run: line 6: 14 Segmentation fault (core dumped) box64 ./hlds_linux -game cstrike -ip 0.0.0.0 -port 27015 +clientport 27005 +tv_port 27020 +map de_dust2 -maxplayers 20 -tickrate 100 -pingboost 2 +sys_ticrate 1000 +fps_max 1000
Additional notes
The engine, Metamod-r, and Reunion all initialize and run correctly under this same Box32/Box64 stack — only AMX Mod X triggers this crash, consistently, at the exact same point across two different AMXX versions. This suggests AMX Mod X's engine-symbol resolution (which appears to do low-level memory pattern scanning) is hitting a Box32 emulation edge case. Happy to provide more logs, test patches, or run additional diagnostics if useful.
Environment
ghcr.io/pelican-eggs/yolks:box64)Description
The server crashes with SIGSEGV consistently, always inside
amxmodx_mm_i386.so, inMemoryUtils::ResolveSymbol, right after AMX Mod X initializes and before any plugin loads. The crash happens whether AMX Mod X is loaded via Metamod's plugin.ini or manually. Metamod-r and other plugins (Reunion) initialize fine; only AMX Mod X triggers the crash.Tested with two different AMX Mod X versions (1.10.0.5467 and 1.9.0.5303, both official builds) — same crash, same function, same relative offset (
ResolveSymbol + 0xe4), suggesting it's not version-specific but a Box32/Box64 emulation issue with whatever memory-scanning technique AMX Mod X uses to resolve engine symbols.Steps to reproduce
Run HLDS (
hlds_linux, x86 32-bit binary) under Box64 with Box32 enabled, via: box64 ./hlds_linux -game cstrike -ip 0.0.0.0 -port 27015 +clientport 27005 +tv_port 27020 +map de_dust2 -maxplayers 20 -tickrate 100 -pingboost 2 +sys_ticrate 1000 +fps_max 1000Ensure Metamod-r and AMX Mod X are both installed and enabled in
addons/metamod/dlls/plugins.ini(or equivalent).Server crashes with SIGSEGV during AMX Mod X initialization, before the first plugin loads.
What I've already tried (no effect, same crash)
BOX64_DYNAREC_SAFEFLAGS=1BOX64_DYNAREC_BIGBLOCK=0BOX32_DYNAREC_SAFEFLAGS=1BOX64_DYNAREC_STRONGMEM=1Crash log
[BOX32] Using emulated /home/container/cstrike/addons/amxmodx/dlls/amxmodx_mm_i386.so
AMX Mod X version 1.9.0.5303 Copyright (c) 2004-2015 AMX Mod X Development Team
AMX Mod X comes with ABSOLUTELY NO WARRANTY; for details type `amxx gpl'.
This is free software and you are welcome to redistribute it under
certain conditions; type 'amxx gpl' for details.
[BOX32] Using emulated cstrike/addons/amxmodx/modules/fun_amxx_i386.so
[BOX32] Using emulated cstrike/addons/amxmodx/modules/engine_amxx_i386.so
[BOX32] Using emulated cstrike/addons/amxmodx/modules/fakemeta_amxx_i386.so
[BOX32] 0014|SIGSEGV @0x1075be7bc (???(0x1075be7bc)) (x64pc=0x43a4c974/"/home/container/cstrike/addons/amxmodx/dlls/amxmodx_mm_i386.so/_ZN11MemoryUtils13ResolveSymbolEPvPKc + 0xe4", rsp=0x3081a880, stack=0x30020000:0x30820000 own=(nil) fp=0x43bd6711), for accessing 0x4 (code=1/prot=0), db=0x1075bea48(0x1075be6c0:0x1075beb5c/0x43a4c8f7:0x43a4c9c0//home/container/cstrike/addons/amxmodx/dlls/amxmodx_mm_i386.so/_ZN11MemoryUtils13ResolveSymbolEPvPKc + 0x67:clean, hash:a739055b/a739055b) handler=(nil)
RAX:0x0000000000000004 RCX:0x0000000000000000 RDX:0x000000003081aa2c RBX:0x000000005eb9e440
RSP:0x000000003081a880 RBP:0x0000000043bd6711 RSI:0x000000005eb95030 RDI:0x0000000043bd6494
R8:0x0000000000000000 R9:0x0000000000000000 R10:0x0000000000000000 R11:0x0000000000000000
R12:0x0000000000000000 R13:0x0000000000000000 R14:0x0000000000000000 R15:0x0000000000000000
ES:0x002b CS:0x0023 SS:0x002b DS:0x002b FS:0x0000 GS:0x0033 FSBASE=(nil) GSBASE=0x5e7b8e40
RSP-0x20:0x3035333100000020 RSP-0x18:0x43a4c95600000000 RSP-0x10:0x00000000fcaa9010 RSP-0x08:0xffffffff00040000
RSP+0x00:0x0000000000000020 RSP+0x08:0xffffffff00000006 RSP+0x10:0x0000000000000003 RSP+0x18:0x0000000800000000 x86opcode=8B 00 89 46 10 C7 46 14 (opcode=b940014a)
./hlds_run: line 6: 14 Segmentation fault (core dumped) box64 ./hlds_linux -game cstrike -ip 0.0.0.0 -port 27015 +clientport 27005 +tv_port 27020 +map de_dust2 -maxplayers 20 -tickrate 100 -pingboost 2 +sys_ticrate 1000 +fps_max 1000
Additional notes
The engine, Metamod-r, and Reunion all initialize and run correctly under this same Box32/Box64 stack — only AMX Mod X triggers this crash, consistently, at the exact same point across two different AMXX versions. This suggests AMX Mod X's engine-symbol resolution (which appears to do low-level memory pattern scanning) is hitting a Box32 emulation edge case. Happy to provide more logs, test patches, or run additional diagnostics if useful.