{ "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." ] }