We have two OOD instances and the shell app behaves very differently on each:
Working system:
-
OOD 3.1.14 on Ubuntu 22.04
-
Node.js 18.20.8
-
Shell stays connected for several minutes
Broken system:
-
OOD 4.0.8 on Rocky Linux 9.6
-
Node.js 20.19.5
-
Shell disconnects after ~20 seconds regardless of activity
Both systems have shell app version 1.1.2. The WebSocket closes with code 1006 (abnormal closure) with no reason provided. This affects all users, and happens even with a laptop plugged directly into the same VLAN switch as the server.
What we’ve ruled out:
-
SELinux (disabled)
-
Firewall (firewalld not running, iptables policy ACCEPT)
-
Apache mod_reqtimeout (set to
header=0 body=0) -
mod_proxy_wstunnel (verified loaded)
-
Shell app environment variables:
-
OOD_SHELL_PING_PONG=true -
OOD_SHELL_INACTIVE_TIMEOUT_MS=300000
-
-
Passenger settings (
passenger_pool_idle_time,passenger_abort_websockets_on_process_shutdown) -
TCP kernel settings (identical on both systems)
-
PUN nginx config (compared side by side, nearly identical)
-
Network path (tested with direct connection to switch)
PUN error log shows:
Closed terminal: XXXXX code=1006 reason=
The app.js files have minor differences (V2 logs close code/reason, V1 doesn’t) but core logic is identical.
Any ideas what could cause this on OOD 4.0.8 / Rocky 9 / Node 20 that doesn’t happen on OOD 3.1.14 / Ubuntu / Node 18?