Skip to content

Recording-safety bundle: disabled!=idle (#1059), preserve leftover recordings (#1249), NodeId health key (#1078) - #2

Open
Harishkrishna17 wants to merge 3 commits into
mainfrom
feat/recording-safety-bundle
Open

Recording-safety bundle: disabled!=idle (#1059), preserve leftover recordings (#1249), NodeId health key (#1078)#2
Harishkrishna17 wants to merge 3 commits into
mainfrom
feat/recording-safety-bundle

Conversation

@Harishkrishna17

Copy link
Copy Markdown

Ports three small, independent upstream recording-safety / correctness fixes into the Talview fork.

Included (cherry-picked, -x trailer preserved)

Upstream Change File
livekit#1059 Do not consider disabled egresses as idle (IsIdle() && !IsDisabled()) pkg/server/server.go
livekit#1249 Preserve leftover recordings on container restart (copy non-empty tmp/recovered before cleanup) build/egress/entrypoint.sh
livekit#1078 Add NodeId to the :8080/ health endpoint pkg/server/server.go

Deliberately excluded: livekit#1247 (graceful CPU drain)

The original bundle plan included livekit#1247 (graceful drain on high CPU). Dropped because main already implements it nativelycheckCPUKill stages a graceful EOS drain via StopProcess/lowCPUResetDuration (see pkg/stats/monitor.go). Re-adding livekit#1247 would duplicate and conflict with upstream's own drain. No functionality lost.

⚠️ Operational note on livekit#1078 (NodeId)

Adding NodeId changes the shape of the :8080/ health JSON. Any egress autoscaler that counts non-CpuLoad keys as active egresses will miscount NodeId as a phantom egress unless it excludes it by name (this exact issue blocked VR scale-down under SRE-4121; the Talview autoscaler already excludes both CpuLoad and NodeId).

Verification

All three applied cleanly onto main; pkg/server compiles clean; entrypoint.sh is shell. Full go test needs gstreamer/cgo (CI/Docker only).

biglittlebigben and others added 3 commits July 13, 2026 07:50
The entrypoint wipes /home/egress/tmp on every start. If a container
restarted mid-egress (crash, OOM, redeploy), any in-progress recording
in tmp was lost before it could be recovered.

Copy a non-empty tmp into /home/egress/recovered before the cleanup, so
operators can retrieve partial output from the previous session. The
copy is skipped when tmp is empty, leaving normal startup unchanged.

(cherry picked from commit e1e9bd2)
(cherry picked from commit a89f423)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants