323 lines
12 KiB
JSON
323 lines
12 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"kind": "independent-packed-linux-startup-review",
|
|
"reviewed_utc": "2026-09-19T11:28:10.748097+00:00",
|
|
"run_directory": "/tmp/erri-dedicated-packed-chat-20260919-1322",
|
|
"result": {
|
|
"command": [
|
|
"bwrap",
|
|
"--unshare-net",
|
|
"--unshare-pid",
|
|
"--unshare-ipc",
|
|
"--unshare-uts",
|
|
"--die-with-parent",
|
|
"--cap-drop",
|
|
"ALL",
|
|
"--clearenv",
|
|
"--ro-bind",
|
|
"/",
|
|
"/",
|
|
"--tmpfs",
|
|
"/home",
|
|
"--tmpfs",
|
|
"/tmp",
|
|
"--tmpfs",
|
|
"/run",
|
|
"--proc",
|
|
"/proc",
|
|
"--dev",
|
|
"/dev",
|
|
"--ro-bind",
|
|
"/tmp/erri-dedicated-runtime/server",
|
|
"/tmp/runtime",
|
|
"--bind",
|
|
"/tmp/erri-dedicated-packed-chat-20260919-1322/source",
|
|
"/tmp/source",
|
|
"--bind",
|
|
"/tmp/erri-dedicated-packed-chat-20260919-1322",
|
|
"/tmp/work",
|
|
"--setenv",
|
|
"HOME",
|
|
"/tmp/work/home",
|
|
"--setenv",
|
|
"TMPDIR",
|
|
"/tmp/work/tmp",
|
|
"--setenv",
|
|
"XDG_CONFIG_HOME",
|
|
"/tmp/work/home/.config",
|
|
"--setenv",
|
|
"XDG_DATA_HOME",
|
|
"/tmp/work/home/.local/share",
|
|
"--setenv",
|
|
"XDG_CACHE_HOME",
|
|
"/tmp/work/home/.cache",
|
|
"--setenv",
|
|
"PATH",
|
|
"/usr/bin:/bin",
|
|
"--setenv",
|
|
"LANG",
|
|
"C.UTF-8",
|
|
"--chdir",
|
|
"/tmp/runtime",
|
|
"/usr/bin/python3",
|
|
"-c",
|
|
"import json,os,socket,sys\nstate={\"netns\":os.readlink(\"/proc/self/ns/net\"),\"interfaces\":socket.if_nameindex(),\"routes\":open(\"/proc/net/route\").read(),\"ipv6Routes\":open(\"/proc/net/ipv6_route\").read()}\nprint(\"ERR ISOLATION \"+json.dumps(state),flush=True)\nassert state[\"netns\"] != sys.argv[1], \"network namespace was not isolated\"\nassert [name for _,name in state[\"interfaces\"]] == [\"lo\"], \"non-loopback interface present\"\nassert len(state[\"routes\"].splitlines()) == 1, \"IPv4 route present\"\nassert all(line.split()[-1] == \"lo\" for line in state[\"ipv6Routes\"].splitlines()), \"non-loopback IPv6 route present\"\nif len(sys.argv)>2: os.execv(sys.argv[2],sys.argv[2:])\n",
|
|
"net:[4026531833]",
|
|
"/tmp/runtime/ArmaReforgerServer",
|
|
"-profile",
|
|
"/tmp/work/profile",
|
|
"-noBackend",
|
|
"-noSound",
|
|
"-noSplash",
|
|
"-noThrow",
|
|
"-bindIP",
|
|
"127.0.0.1",
|
|
"-bindPort",
|
|
"2001",
|
|
"-maxFPS",
|
|
"30",
|
|
"-logStats",
|
|
"5000",
|
|
"-addonsDir",
|
|
"/tmp/source/addons",
|
|
"-addons",
|
|
"FA804F411BDDF2C6",
|
|
"-server",
|
|
"{C1E20667DCE324ED}Missions/ERR_Everon.conf"
|
|
],
|
|
"engine": [
|
|
"/tmp/runtime/ArmaReforgerServer",
|
|
"-profile",
|
|
"/tmp/work/profile",
|
|
"-noBackend",
|
|
"-noSound",
|
|
"-noSplash",
|
|
"-noThrow",
|
|
"-bindIP",
|
|
"127.0.0.1",
|
|
"-bindPort",
|
|
"2001",
|
|
"-maxFPS",
|
|
"30",
|
|
"-logStats",
|
|
"5000",
|
|
"-addonsDir",
|
|
"/tmp/source/addons",
|
|
"-addons",
|
|
"FA804F411BDDF2C6",
|
|
"-server",
|
|
"{C1E20667DCE324ED}Missions/ERR_Everon.conf"
|
|
],
|
|
"seconds": 90,
|
|
"route": "header",
|
|
"project": "chat",
|
|
"binarySHA256": "91fdf333ec49c266d309be358aabab4244a93a2f9cfa11853a600e026104001f",
|
|
"serverLaunched": true,
|
|
"realPlayers": 0,
|
|
"multiplayerProven": false,
|
|
"scope": "successor chat empty-server startup",
|
|
"supervisorPid": 3599703,
|
|
"startedUTC": "2026-09-19T11:24:56Z",
|
|
"timeout": true,
|
|
"exit": -15,
|
|
"finishedUTC": "2026-09-19T11:26:26Z"
|
|
},
|
|
"conclusion": "Packed five-addon Linux Game compilation, scenario-header/MissionSystems loading and empty-server prison preparation observed; not clean runtime qualification.",
|
|
"qualified_release": false,
|
|
"multiplayer_proven": false,
|
|
"performance_improvement_proven": false,
|
|
"source": {
|
|
"manifest_files": 15,
|
|
"exact_fifteen_runtime_files": true,
|
|
"before_after_equal": true,
|
|
"current_frozen_files_equal_manifest": true,
|
|
"all_fifteen_match_current_1317_package_artifacts": true,
|
|
"source_manifest_sha256": "f7477cd7b28ba06cd9ab36ffd472462ae76fbd7fcb205662523094f261d8fc96",
|
|
"source_manifest_after_sha256": "f7477cd7b28ba06cd9ab36ffd472462ae76fbd7fcb205662523094f261d8fc96"
|
|
},
|
|
"loaded_addons": [
|
|
{
|
|
"path": "./addons/core/core.gproj",
|
|
"guid": "5614BBCCBB55ED1C"
|
|
},
|
|
{
|
|
"path": "./addons/data/ArmaReforger.gproj",
|
|
"guid": "58D0FB3206B6F859"
|
|
},
|
|
{
|
|
"path": "/tmp/source/addons/core/addon.gproj",
|
|
"guid": "2528466DE220D91C"
|
|
},
|
|
{
|
|
"path": "/tmp/source/addons/ai/addon.gproj",
|
|
"guid": "5192138CB9D5B911"
|
|
},
|
|
{
|
|
"path": "/tmp/source/addons/intel/addon.gproj",
|
|
"guid": "D31039C7C53E348A"
|
|
},
|
|
{
|
|
"path": "/tmp/source/addons/map/addon.gproj",
|
|
"guid": "9AAEE9041D79809E"
|
|
},
|
|
{
|
|
"path": "/tmp/source/addons/chat/addon.gproj",
|
|
"guid": "FA804F411BDDF2C6"
|
|
}
|
|
],
|
|
"exact_expected_seven_guids": true,
|
|
"package_mounts": [
|
|
{
|
|
"line": 21,
|
|
"raw": "13:24:56.728 ENGINE : FileSystem: Adding package '/tmp/source/addons/chat/' (pak count: 1) to filesystem under name ERR_Chat"
|
|
},
|
|
{
|
|
"line": 22,
|
|
"raw": "13:24:56.728 ENGINE : FileSystem: Adding package '/tmp/source/addons/map/' (pak count: 1) to filesystem under name ERR_Map"
|
|
},
|
|
{
|
|
"line": 23,
|
|
"raw": "13:24:56.728 ENGINE : FileSystem: Adding package '/tmp/source/addons/intel/' (pak count: 1) to filesystem under name ERR_Intel"
|
|
},
|
|
{
|
|
"line": 24,
|
|
"raw": "13:24:56.728 ENGINE : FileSystem: Adding package '/tmp/source/addons/ai/' (pak count: 1) to filesystem under name ERR_Ai"
|
|
},
|
|
{
|
|
"line": 25,
|
|
"raw": "13:24:56.728 ENGINE : FileSystem: Adding package '/tmp/source/addons/core/' (pak count: 1) to filesystem under name ERR_Core"
|
|
}
|
|
],
|
|
"database_loads": [
|
|
{
|
|
"line": 35,
|
|
"raw": "13:24:56.811 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Chat path=/tmp/source/addons/chat/resourceDatabase.rdb)"
|
|
},
|
|
{
|
|
"line": 36,
|
|
"raw": "13:24:56.811 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Map path=/tmp/source/addons/map/resourceDatabase.rdb)"
|
|
},
|
|
{
|
|
"line": 37,
|
|
"raw": "13:24:56.811 RESOURCES : ResourceDB: loading cache (id=2 name=ERR_Intel path=/tmp/source/addons/intel/resourceDatabase.rdb)"
|
|
},
|
|
{
|
|
"line": 38,
|
|
"raw": "13:24:56.811 RESOURCES : ResourceDB: loading cache (id=3 name=ERR_Ai path=/tmp/source/addons/ai/resourceDatabase.rdb)"
|
|
},
|
|
{
|
|
"line": 39,
|
|
"raw": "13:24:56.811 RESOURCES : ResourceDB: loading cache (id=4 name=ERR_Core path=/tmp/source/addons/core/resourceDatabase.rdb)"
|
|
}
|
|
],
|
|
"missing_database_warnings": [],
|
|
"game_compilation": [
|
|
{
|
|
"line": 103,
|
|
"raw": "13:24:58.656 SCRIPT : Module: Game; loaded 5780x files; 11202x classes; used 26151K of static memory; defines: \"PLATFORM_LINUX,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG\"; CRC32: 6264db09"
|
|
}
|
|
],
|
|
"header": [
|
|
{
|
|
"line": 112,
|
|
"raw": "13:24:58.906 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{C1E20667DCE324ED}Missions/ERR_Everon.conf'."
|
|
}
|
|
],
|
|
"systems": [
|
|
{
|
|
"line": 124,
|
|
"raw": "13:24:59.702 WORLD : WORLD : Initializing world systems @\"{C50579A2EC48E8EF}Configs/Systems/MissionSystems.conf\""
|
|
}
|
|
],
|
|
"prepared_sites": [
|
|
{
|
|
"line": 318,
|
|
"raw": "13:25:17.916 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready"
|
|
}
|
|
],
|
|
"prison_transition": [
|
|
{
|
|
"line": 321,
|
|
"raw": "13:25:17.923 SCRIPT : Rereintroduced [mission]: phase 0 -> 1"
|
|
}
|
|
],
|
|
"captured_console_errors": [
|
|
{
|
|
"line": 118,
|
|
"raw": "13:24:59.544 RESOURCES (E): Wrong GUID/name for resource @\"{45ECF6B1797D3CD9}system/wbdata/PreviewWindow/TransparentMat.emat\" in property \"AssignedMaterial\""
|
|
},
|
|
{
|
|
"line": 121,
|
|
"raw": "13:24:59.612 RESOURCES (E): Wrong GUID/name for resource @\"{FF35BE9795BA3797}system/wbdata/Gizmo3D/sphere.xob\" in property \"Object\""
|
|
},
|
|
{
|
|
"line": 146,
|
|
"raw": "13:25:07.303 MATERIAL (E): Material file not found"
|
|
},
|
|
{
|
|
"line": 147,
|
|
"raw": "13:25:07.303 MATERIAL (E): Cannot load material @\"system/wbdata/PreviewWindow/TransparentMat.emat\", creating default one (class MatPBRBasic)"
|
|
}
|
|
],
|
|
"error_line_count": 4,
|
|
"captured_script_vm_patterns": [],
|
|
"vanilla_comparison": {
|
|
"console": "/tmp/erri-next-build/docs/evidence/dedicated-2026-09-19-084040-vanilla/profile/logs/logs_2026-09-19_08-40-40/console.log",
|
|
"sha256": "99663069b32ad193b11032486c049745d9e2fd79ab69dc523ec125ec69856eaa",
|
|
"baseline_error_line_count": 21,
|
|
"normalization": "Remove HH:MM:SS.mmm prefix; collapse whitespace; preserve category, message and resource identity.",
|
|
"all_current_errors_reproduced_in_vanilla": true,
|
|
"current_normalized_errors": {
|
|
"RESOURCES (E): Wrong GUID/name for resource @\"{45ECF6B1797D3CD9}system/wbdata/PreviewWindow/TransparentMat.emat\" in property \"AssignedMaterial\"": 1,
|
|
"RESOURCES (E): Wrong GUID/name for resource @\"{FF35BE9795BA3797}system/wbdata/Gizmo3D/sphere.xob\" in property \"Object\"": 1,
|
|
"MATERIAL (E): Material file not found": 1,
|
|
"MATERIAL (E): Cannot load material @\"system/wbdata/PreviewWindow/TransparentMat.emat\", creating default one (class MatPBRBasic)": 1
|
|
},
|
|
"current_errors_absent_from_control": {},
|
|
"note": "Subset match, not equal total error sets. Vanilla also has catalog-schema and empty-resource errors; none are suppressed or converted into success."
|
|
},
|
|
"cleanup": {
|
|
"isolation_preflight_exit": 0,
|
|
"bounded_timeout": true,
|
|
"native_supervisor_exit": -15,
|
|
"recorded_supervisor_absent_at_review": true,
|
|
"server_executables_visible_at_review": [],
|
|
"native_graceful_shutdown_proven": false
|
|
},
|
|
"native_statistics": {
|
|
"records": 15,
|
|
"examples": [
|
|
{
|
|
"line": 278,
|
|
"raw": "13:25:16.186 DEFAULT : FPS: 29.7, frame time (avg: 33.7 ms, min: 3.6 ms, max: 94.8 ms, mean: 32.9 ms, median: 33.3 ms), Mem: 996591 kB, Player: 0, AI: 32, AIChar: 23, Veh: 0 (2), Proj (S: 0, M: 0, G: 0 | 0), Freezes(cnt: 1, max: 90.6 ms, len: 1), Streaming(Dynam: 708, Static: 57591, Disabled: 30 | New: 0, Del: 0, Bump: 16)"
|
|
},
|
|
{
|
|
"line": 328,
|
|
"raw": "13:25:21.217 DEFAULT : FPS: 30.0, frame time (avg: 33.3 ms, min: 8.4 ms, max: 74.4 ms, mean: 33.3 ms, median: 33.3 ms), Mem: 1002922 kB, Player: 0, AI: 51, AIChar: 40, Veh: 0 (2), Proj (S: 0, M: 0, G: 0 | 0), Streaming(Dynam: 833, Static: 57591, Disabled: 32 | New: 0, Del: 0, Bump: 16)"
|
|
}
|
|
],
|
|
"note": "Zero-player 30-FPS-capped coarse windows, not matched-workload or raw-frame comparison. First real line includes optional Freezes fields unsupported by initial parser."
|
|
},
|
|
"raw_log_hashes": {
|
|
"profile/logs/logs_2026-09-19_13-24-56/error.log": {
|
|
"sha256": "b6219af2e041f542791a3b7e50b44380744489eb694b77bdee8466f78097c9bd",
|
|
"bytes": 5853
|
|
},
|
|
"profile/logs/logs_2026-09-19_13-24-56/script.log": {
|
|
"sha256": "397d8070e40b7100ba744bbb834b398ce4da051250b0dfbfd7953b591c4985dd",
|
|
"bytes": 22787
|
|
},
|
|
"profile/logs/logs_2026-09-19_13-24-56/console.log": {
|
|
"sha256": "30f3d57bd395f6aaff64af4fd1eb4d14292d88f40e20d216458f5ff889cf93d7",
|
|
"bytes": 41631
|
|
}
|
|
},
|
|
"limitations": [
|
|
"No genuine client joined; authentication, remote replication, reconnect and seat contention were not exercised.",
|
|
"No held-input ordinary escape loop or gameplay completion was performed.",
|
|
"Timeout/SIGTERM is owned bounded diagnostic cleanup, not a native graceful-shutdown test.",
|
|
"Native compilation and preparation do not remove the four captured installed-resource errors or the packaging shutdown errors.",
|
|
"The observations bind to these hashed packed artifacts; no assertion about newer or unarchived sources."
|
|
]
|
|
}
|