her sey
This commit is contained in:
@@ -0,0 +1,334 @@
|
||||
# Conduit Linux Bring-up Report - 2026-06-13
|
||||
|
||||
Target server:
|
||||
- CS2 container: `gp_c2b47a90`
|
||||
- CS2 server UUID: `c2b47a90`
|
||||
- CS2 name: `Test Sunucusu`
|
||||
- Satisfactory container: `gp_d8f13411` (left untouched)
|
||||
|
||||
Artifacts copied next to this report:
|
||||
- `conduit-20260613.log`
|
||||
- `conduit-crash-20260613-113458.txt`
|
||||
|
||||
Final service state after crash test recovery:
|
||||
|
||||
```text
|
||||
/gp_c2b47a90 running running=true exit=0 oom=false
|
||||
/gp_d8f13411 exited running=false exit=130 oom=false
|
||||
```
|
||||
|
||||
Panel DB state after recovery:
|
||||
|
||||
```text
|
||||
uuid | name | status | slug | port
|
||||
----------+----------------+---------+--------------+-------
|
||||
c2b47a90 | Test Sunucusu | running | cs2 | 27015
|
||||
d8f13411 | MukemmelSunucu | stopped | satisfactory | 7777
|
||||
(2 rows)
|
||||
```
|
||||
|
||||
## 1. Build Result
|
||||
|
||||
Final build succeeded using GCC 12 in `build/linux-gcc12`.
|
||||
|
||||
Final link output:
|
||||
|
||||
```text
|
||||
[27/27] Linking CXX shared library package/addons/conduit/bin/conduit.so
|
||||
```
|
||||
|
||||
Build/deploy issues encountered and fixed:
|
||||
- Ubuntu `clang++` was 14.0.0 and rejected `-std=c++23`.
|
||||
- `hl2sdk` headers needed POSIX aliases for `stricmp`/`strcmpi` during this Linux build.
|
||||
- `crash_handler_linux.cpp` needed `cstdarg` visible for `va_start`/`va_end`; handled via build flag.
|
||||
- `watchdog.cpp` had a Linux compile error because glibc `SIGRTMIN` is runtime, not constexpr. Local source change:
|
||||
|
||||
```diff
|
||||
-constexpr int kSampleSignal = SIGRTMIN + 4;
|
||||
+const int kSampleSignal = SIGRTMIN + 4;
|
||||
```
|
||||
|
||||
- First deployed build failed to load in Metamod with protobuf ABI mismatch:
|
||||
|
||||
```text
|
||||
[META] Failed to load plugin addons/conduit/bin/conduit: /home/steam/cs2-dedicated/game/csgo/addons/conduit/bin/conduit.so: undefined symbol: _ZNK6google8protobuf7Message11GetTypeNameB5cxx11Ev
|
||||
```
|
||||
|
||||
Rebuilt with `_GLIBCXX_USE_CXX11_ABI=0`; Conduit then loaded successfully.
|
||||
|
||||
Final configure command used:
|
||||
|
||||
```sh
|
||||
cmake -S /root/codex/Conduit -B /root/codex/Conduit/build/linux-gcc12 -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_C_COMPILER=gcc-12 \
|
||||
-DCMAKE_CXX_COMPILER=g++-12 \
|
||||
"-DCMAKE_CXX_FLAGS=-include strings.h -include cstdarg -Dstricmp=strcasecmp -Dstrcmpi=strcasecmp -D_GLIBCXX_USE_CXX11_ABI=0"
|
||||
```
|
||||
|
||||
## 2. meta list
|
||||
|
||||
```text
|
||||
rcon: authenticated
|
||||
--- meta list ---
|
||||
Listing 1 plugin:
|
||||
[01] Conduit (0.1.0-dev) by Conduit Contributors
|
||||
```
|
||||
|
||||
## 3. conduit_status + conduit_prof
|
||||
|
||||
```text
|
||||
--- conduit_status ---
|
||||
Conduit 0.1.0-dev
|
||||
uptime : 3384.6 s
|
||||
game frames : 215969
|
||||
log file : /home/steam/cs2-dedicated/game/csgo/addons/conduit/logs/conduit-20260613.log
|
||||
crash report: armed (use conduit_crash_test to verify)
|
||||
--- conduit_prof ---
|
||||
owner callsite calls avg p50 p99 max total
|
||||
engine GameFrame 215971 2.36ms 4.19ms 4.19ms 34.46ms 510.40s
|
||||
stall_test_plugin conduit_stall_test 1 1.50s 2.15s 2.15s 1.50s 1.50s
|
||||
core SchemaFindField 2 98.4us 262.1us 262.1us 164.3us 196.7us
|
||||
```
|
||||
|
||||
After the deliberate crash test and restart, Conduit loaded again:
|
||||
|
||||
```text
|
||||
rcon: authenticated
|
||||
--- meta list ---
|
||||
Listing 1 plugin:
|
||||
[01] Conduit (0.1.0-dev) by Conduit Contributors
|
||||
--- conduit_status ---
|
||||
Conduit 0.1.0-dev
|
||||
uptime : 130.2 s
|
||||
game frames : 7760
|
||||
log file : /home/steam/cs2-dedicated/game/csgo/addons/conduit/logs/conduit-20260613.log
|
||||
crash report: armed (use conduit_crash_test to verify)
|
||||
```
|
||||
|
||||
## 4. conduit_schema
|
||||
|
||||
```text
|
||||
--- conduit_schema CCSPlayerPawn m_iHealth ---
|
||||
CCSPlayerPawn::m_iHealth -> offset 0x5B0 (1456), type int32
|
||||
--- conduit_schema CBaseEntity m_iTeamNum ---
|
||||
CBaseEntity::m_iTeamNum -> offset 0x624 (1572), type uint8
|
||||
```
|
||||
|
||||
Comparison with Windows reference from the bring-up doc:
|
||||
- `CCSPlayerPawn::m_iHealth`: Linux `0x5B0`, Windows expected `0x2D0` -> mismatch.
|
||||
- `CBaseEntity::m_iTeamNum`: Linux `0x624`, Windows expected `0x344` -> mismatch.
|
||||
|
||||
## 5. conduit_stall_test 1500 Watchdog Block
|
||||
|
||||
RCON command:
|
||||
|
||||
```text
|
||||
rcon: authenticated
|
||||
--- conduit_stall_test 1500 ---
|
||||
[Conduit] stalling the game thread for 1500 ms...
|
||||
```
|
||||
|
||||
Conduit log block:
|
||||
|
||||
```text
|
||||
2026-06-13 10:35:31 [WARN] watchdog: game thread has not advanced a frame for 591 ms (outside GameFrame)
|
||||
2026-06-13 10:35:31 [WARN] watchdog: context 1: owner=stall_test_plugin callsite=conduit_stall_test
|
||||
2026-06-13 10:35:31 [WARN] watchdog: >>> most likely culprit: 'stall_test_plugin' (in 'conduit_stall_test')
|
||||
2026-06-13 10:35:31 [WARN] watchdog: #00 /home/steam/cs2-dedicated/game/csgo/addons/conduit/bin/conduit.so(+0xc95c9) [0x7fdf9e69e5c9]
|
||||
2026-06-13 10:35:31 [WARN] watchdog: #01 /lib/x86_64-linux-gnu/libc.so.6(+0x3c050) [0x7fdfefa51050]
|
||||
2026-06-13 10:35:31 [WARN] watchdog: #02 /lib/x86_64-linux-gnu/libc.so.6(clock_nanosleep+0x65) [0x7fdfefae4545]
|
||||
2026-06-13 10:35:31 [WARN] watchdog: #03 /lib/x86_64-linux-gnu/libc.so.6(nanosleep+0x13) [0x7fdfefae8e53]
|
||||
2026-06-13 10:35:31 [WARN] watchdog: #04 /home/steam/cs2-dedicated/game/csgo/addons/conduit/bin/conduit.so(+0xbf703) [0x7fdf9e694703]
|
||||
2026-06-13 10:35:31 [WARN] watchdog: #05 /home/steam/cs2-dedicated/game/bin/linuxsteamrt64/libtier0.so(+0x1e0902) [0x7fdfef4ca902]
|
||||
2026-06-13 10:35:32 [INFO] watchdog: game thread recovered after a ~1586 ms stall
|
||||
```
|
||||
|
||||
Notes:
|
||||
- Attribution worked.
|
||||
- Stack sample landed.
|
||||
- Symbol quality is partial: `libconduit.so(+0x...)` offsets are present, but not function names such as `conduit_stall_test`.
|
||||
|
||||
## 6. conduit_crash_test Report
|
||||
|
||||
RCON command result:
|
||||
|
||||
```text
|
||||
rcon: authenticated
|
||||
--- conduit_crash_test ---
|
||||
(no response: connection closed)
|
||||
```
|
||||
|
||||
Generated file:
|
||||
|
||||
```text
|
||||
/var/lib/gamepanel/servers/c2b47a90/game/csgo/addons/conduit/crashes/conduit-crash-20260613-113458.txt
|
||||
```
|
||||
|
||||
Crash report content:
|
||||
|
||||
```text
|
||||
=== CONDUIT CRASH REPORT ==========================================
|
||||
Framework : Conduit 0.1.0-dev
|
||||
Time : 2026-06-13 11:34:58 (local)
|
||||
Process : pid=36
|
||||
Signal : 11 (Segmentation fault), fault address (nil)
|
||||
|
||||
--- ATTRIBUTION ---------------------------------------------------
|
||||
1. owner=crash_test_plugin callsite=conduit_crash_test
|
||||
>>> Most likely culprit: 'crash_test_plugin' (in 'conduit_crash_test')
|
||||
|
||||
--- STACK TRACE ---------------------------------------------------
|
||||
#00 /home/steam/cs2-dedicated/game/csgo/addons/conduit/bin/conduit.so(+0xbfb64) [0x7fdf9e694b64]
|
||||
#01 /lib/x86_64-linux-gnu/libc.so.6(+0x3c050) [0x7fdfefa51050]
|
||||
#02 /home/steam/cs2-dedicated/game/csgo/addons/conduit/bin/conduit.so(+0xbf66c) [0x7fdf9e69466c]
|
||||
#03 /home/steam/cs2-dedicated/game/bin/linuxsteamrt64/libtier0.so(+0x1e0902) [0x7fdfef4ca902]
|
||||
|
||||
--- RECENT EVENTS (oldest first) ----------------------------------
|
||||
[-1767.736s] [INFO] perf: heartbeat: 1921 frames, avg 2.22 ms, max 20.85 ms (last 30 s)
|
||||
[-1737.735s] [INFO] perf: heartbeat: 1920 frames, avg 2.16 ms, max 5.31 ms (last 30 s)
|
||||
[-1707.720s] [INFO] perf: heartbeat: 1921 frames, avg 2.12 ms, max 4.39 ms (last 30 s)
|
||||
[-1677.719s] [INFO] perf: heartbeat: 1920 frames, avg 2.20 ms, max 5.59 ms (last 30 s)
|
||||
[-1647.706s] [INFO] perf: heartbeat: 1921 frames, avg 2.39 ms, max 23.56 ms (last 30 s)
|
||||
[-1617.705s] [INFO] perf: heartbeat: 1920 frames, avg 2.71 ms, max 7.46 ms (last 30 s)
|
||||
[-1587.691s] [INFO] perf: heartbeat: 1921 frames, avg 2.37 ms, max 8.58 ms (last 30 s)
|
||||
[-1557.680s] [INFO] perf: heartbeat: 1921 frames, avg 2.33 ms, max 4.84 ms (last 30 s)
|
||||
[-1527.679s] [INFO] perf: heartbeat: 1920 frames, avg 2.25 ms, max 5.09 ms (last 30 s)
|
||||
[-1497.674s] [INFO] perf: heartbeat: 1920 frames, avg 2.18 ms, max 19.43 ms (last 30 s)
|
||||
[-1467.673s] [INFO] perf: heartbeat: 1920 frames, avg 2.30 ms, max 6.87 ms (last 30 s)
|
||||
[-1437.669s] [INFO] perf: heartbeat: 1920 frames, avg 2.23 ms, max 34.46 ms (last 30 s)
|
||||
[-1407.668s] [INFO] perf: heartbeat: 1920 frames, avg 2.45 ms, max 6.17 ms (last 30 s)
|
||||
[-1377.653s] [INFO] perf: heartbeat: 1921 frames, avg 2.46 ms, max 6.25 ms (last 30 s)
|
||||
[-1347.653s] [INFO] perf: heartbeat: 1920 frames, avg 2.53 ms, max 5.44 ms (last 30 s)
|
||||
[-1317.644s] [INFO] perf: heartbeat: 1921 frames, avg 2.51 ms, max 20.77 ms (last 30 s)
|
||||
[-1287.631s] [INFO] perf: heartbeat: 1921 frames, avg 2.46 ms, max 6.45 ms (last 30 s)
|
||||
[-1257.614s] [INFO] perf: heartbeat: 1921 frames, avg 2.57 ms, max 5.90 ms (last 30 s)
|
||||
[-1227.600s] [INFO] perf: heartbeat: 1921 frames, avg 2.54 ms, max 5.79 ms (last 30 s)
|
||||
[-1197.583s] [INFO] perf: heartbeat: 1921 frames, avg 2.56 ms, max 6.94 ms (last 30 s)
|
||||
[-1167.578s] [INFO] perf: heartbeat: 1920 frames, avg 2.46 ms, max 20.36 ms (last 30 s)
|
||||
[-1137.562s] [INFO] perf: heartbeat: 1921 frames, avg 2.47 ms, max 7.86 ms (last 30 s)
|
||||
[-1107.548s] [INFO] perf: heartbeat: 1921 frames, avg 2.53 ms, max 6.38 ms (last 30 s)
|
||||
[-1077.547s] [INFO] perf: heartbeat: 1920 frames, avg 2.54 ms, max 4.09 ms (last 30 s)
|
||||
[-1047.543s] [INFO] perf: heartbeat: 1920 frames, avg 2.61 ms, max 33.69 ms (last 30 s)
|
||||
[-1017.532s] [INFO] perf: heartbeat: 1921 frames, avg 2.44 ms, max 5.97 ms (last 30 s)
|
||||
[- 987.516s] [INFO] perf: heartbeat: 1921 frames, avg 2.59 ms, max 5.71 ms (last 30 s)
|
||||
[- 957.501s] [INFO] perf: heartbeat: 1921 frames, avg 2.56 ms, max 7.43 ms (last 30 s)
|
||||
[- 927.501s] [INFO] perf: heartbeat: 1920 frames, avg 2.60 ms, max 9.17 ms (last 30 s)
|
||||
[- 897.490s] [INFO] perf: heartbeat: 1921 frames, avg 2.56 ms, max 24.84 ms (last 30 s)
|
||||
[- 867.475s] [INFO] perf: heartbeat: 1921 frames, avg 2.58 ms, max 6.20 ms (last 30 s)
|
||||
[- 837.475s] [INFO] perf: heartbeat: 1920 frames, avg 2.74 ms, max 5.57 ms (last 30 s)
|
||||
[- 807.475s] [INFO] perf: heartbeat: 1920 frames, avg 2.71 ms, max 6.15 ms (last 30 s)
|
||||
[- 777.460s] [INFO] perf: heartbeat: 1921 frames, avg 2.70 ms, max 5.47 ms (last 30 s)
|
||||
[- 747.449s] [INFO] perf: heartbeat: 1920 frames, avg 2.68 ms, max 24.22 ms (last 30 s)
|
||||
[- 717.434s] [INFO] perf: heartbeat: 1921 frames, avg 2.80 ms, max 8.64 ms (last 30 s)
|
||||
[- 687.419s] [INFO] perf: heartbeat: 1921 frames, avg 2.65 ms, max 5.28 ms (last 30 s)
|
||||
[- 657.418s] [INFO] perf: heartbeat: 1920 frames, avg 2.66 ms, max 6.34 ms (last 30 s)
|
||||
[- 627.416s] [INFO] perf: heartbeat: 1920 frames, avg 2.51 ms, max 31.89 ms (last 30 s)
|
||||
[- 597.416s] [INFO] perf: heartbeat: 1920 frames, avg 2.61 ms, max 6.72 ms (last 30 s)
|
||||
[- 567.400s] [INFO] perf: heartbeat: 1921 frames, avg 2.67 ms, max 6.53 ms (last 30 s)
|
||||
[- 537.384s] [INFO] perf: heartbeat: 1921 frames, avg 2.66 ms, max 6.66 ms (last 30 s)
|
||||
[- 507.369s] [INFO] perf: heartbeat: 1921 frames, avg 2.55 ms, max 5.30 ms (last 30 s)
|
||||
[- 477.365s] [INFO] perf: heartbeat: 1921 frames, avg 2.50 ms, max 34.05 ms (last 30 s)
|
||||
[- 447.364s] [INFO] perf: heartbeat: 1920 frames, avg 2.59 ms, max 5.42 ms (last 30 s)
|
||||
[- 417.349s] [INFO] perf: heartbeat: 1921 frames, avg 2.66 ms, max 6.55 ms (last 30 s)
|
||||
[- 387.334s] [INFO] perf: heartbeat: 1921 frames, avg 2.34 ms, max 4.63 ms (last 30 s)
|
||||
[- 357.334s] [INFO] perf: heartbeat: 1920 frames, avg 2.77 ms, max 6.65 ms (last 30 s)
|
||||
[- 327.332s] [INFO] perf: heartbeat: 1920 frames, avg 2.74 ms, max 26.14 ms (last 30 s)
|
||||
[- 312.170s] detour 'detour_self_test' installed at 0x7fdf9e693cd0
|
||||
[- 312.170s] [INFO] hooks: detour 'detour_self_test' installed at 0x7fdf9e693cd0
|
||||
[- 312.169s] detour 'detour_self_test' removed
|
||||
[- 312.169s] [INFO] hooks: detour 'detour_self_test' removed
|
||||
[- 297.318s] [INFO] perf: heartbeat: 1921 frames, avg 2.73 ms, max 6.96 ms (last 30 s)
|
||||
[- 267.308s] [INFO] perf: heartbeat: 1920 frames, avg 2.58 ms, max 6.68 ms (last 30 s)
|
||||
[- 237.308s] [INFO] perf: heartbeat: 1920 frames, avg 2.68 ms, max 7.08 ms (last 30 s)
|
||||
[- 207.296s] [INFO] perf: heartbeat: 1921 frames, avg 2.50 ms, max 25.68 ms (last 30 s)
|
||||
[- 177.293s] [INFO] perf: heartbeat: 1920 frames, avg 2.51 ms, max 5.12 ms (last 30 s)
|
||||
[- 147.280s] [INFO] perf: heartbeat: 1921 frames, avg 2.65 ms, max 5.80 ms (last 30 s)
|
||||
[- 117.280s] [INFO] perf: heartbeat: 1920 frames, avg 2.64 ms, max 6.24 ms (last 30 s)
|
||||
[- 87.265s] [INFO] perf: heartbeat: 1921 frames, avg 2.78 ms, max 5.95 ms (last 30 s)
|
||||
[- 57.263s] [INFO] perf: heartbeat: 1920 frames, avg 2.66 ms, max 31.12 ms (last 30 s)
|
||||
[- 27.248s] [INFO] perf: heartbeat: 1921 frames, avg 2.72 ms, max 7.34 ms (last 30 s)
|
||||
[- 0.001s] [WARN] core: conduit_crash_test invoked — crashing deliberately
|
||||
===================================================================
|
||||
```
|
||||
|
||||
## 7. Conduit Log File
|
||||
|
||||
Original log file:
|
||||
|
||||
```text
|
||||
/var/lib/gamepanel/servers/c2b47a90/game/csgo/addons/conduit/logs/conduit-20260613.log
|
||||
```
|
||||
|
||||
Copied artifact:
|
||||
|
||||
```text
|
||||
/root/codex/source-gamepanel/conduit-bringup-artifacts/conduit-20260613.log
|
||||
```
|
||||
|
||||
Relevant load lines:
|
||||
|
||||
```text
|
||||
2026-06-13 10:33:21 [INFO] gamedata: 1 files loaded: 0 signatures, 0 offsets, all valid
|
||||
2026-06-13 10:33:21 [INFO] core: Conduit 0.1.0-dev loaded — crash reporter armed, profiler on
|
||||
2026-06-13 10:33:29 [INFO] core: first GameFrame observed — hook dispatch confirmed
|
||||
```
|
||||
|
||||
## 8. Console / Metamod / Signal Warnings
|
||||
|
||||
Important console findings:
|
||||
|
||||
1. Before the ABI rebuild, Metamod failed to load Conduit:
|
||||
|
||||
```text
|
||||
[META] Failed to load plugin addons/conduit/bin/conduit: /home/steam/cs2-dedicated/game/csgo/addons/conduit/bin/conduit.so: undefined symbol: _ZNK6google8protobuf7Message11GetTypeNameB5cxx11Ev
|
||||
[META] Loaded 0 plugins.
|
||||
```
|
||||
|
||||
This was fixed by rebuilding with `_GLIBCXX_USE_CXX11_ABI=0`.
|
||||
|
||||
2. After the successful build, no current Metamod load failure was observed. `meta list` reports Conduit loaded.
|
||||
|
||||
3. Signal/watchdog behavior:
|
||||
- No signal clash symptoms observed.
|
||||
- No `(stack sample timed out)` observed.
|
||||
- Stack sample appeared, but symbol names are mostly raw offsets for `libconduit.so`.
|
||||
|
||||
4. Crash test console tail showed the expected deliberate crash:
|
||||
|
||||
```text
|
||||
post-hook: noop
|
||||
entry.sh: line 192: 36 Segmentation fault (core dumped) ./cs2 -dedicated -ip 0.0.0.0 -port 27015 -console -usercon -maxplayers 16 +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 +rcon_password changeme +sv_lan 0 +tv_port 27020 -insecure
|
||||
```
|
||||
|
||||
Other engine/game warnings seen, not clearly Conduit-specific:
|
||||
|
||||
```text
|
||||
Failed loading resource "maps/prefabs/misc/terrorist_team_intro_variant2/world_visibility.vvis_c" (ERROR_FILEOPEN: File not found)
|
||||
Failed to write backup_round15.txt!
|
||||
UNEXPECTED LONG FRAME DETECTED
|
||||
```
|
||||
|
||||
## Additional Findings
|
||||
|
||||
`conduit_dumpbytes` found `server!CreateInterface`:
|
||||
|
||||
```text
|
||||
[Conduit] server!CreateInterface @ 0x7fdfaa682220
|
||||
55 48 89 E5 41 55 49 89 F5 41 54 53 48 83 EC 08
|
||||
```
|
||||
|
||||
But scanning the same pattern failed:
|
||||
|
||||
```text
|
||||
[Conduit] no match in server (285312 bytes scanned)
|
||||
```
|
||||
|
||||
This looks like a Linux memscan bug or module range issue: export lookup can locate `CreateInterface`, but `ScanPattern` does not find the bytes at that address.
|
||||
|
||||
`conduit_detour_test` passed:
|
||||
|
||||
```text
|
||||
[Conduit] detour test: PASS (before=42 during=43 after=42; expected 42/43/42)
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user