mirror of https://github.com/OpenVidu/openvidu.git
40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
# Proposal
|
|
|
|
## Why
|
|
|
|
The "Graceful shutdown" requirement says that on `SIGTERM` a node with active rooms closes them with `SERVER_SHUTDOWN`
|
|
and flushes their end. The server does not do that: the first `SIGTERM` drains it (no new participants, wait for the
|
|
present ones to leave) and only a second signal closes the rooms. A forced stop of a node (`docker-compose down`, which
|
|
kills it after its grace period) therefore ends while it drains, writes nothing more, and the reconciler closes its
|
|
sessions as for a crashed node. The integration test of that case expects leave events and fails.
|
|
|
|
## What Changes
|
|
|
|
- The requirement describes the drain: during it the participants that leave are written as usual; a second signal
|
|
closes the rooms with `SERVER_SHUTDOWN`; once the rooms are closed, the flush works as before.
|
|
- A node killed while it drains is left to the reconciler, as a crashed one.
|
|
- No server or writer behaviour changes.
|
|
|
|
Scope excludes the following:
|
|
- The drain itself and the stop of media nodes in the deployments.
|
|
|
|
Edition: CE and PRO (server). Repositories: the specs of the dashboard, and the end-to-end reconciler tests of the
|
|
deployments (forced media node stop).
|
|
|
|
CHANGELOG: none.
|
|
|
|
## Capabilities
|
|
|
|
### New Capabilities
|
|
|
|
None.
|
|
|
|
### Modified Capabilities
|
|
|
|
- `server-analytics-writer`: "Graceful shutdown" describes the drain and the forced stop.
|
|
|
|
## Impact
|
|
|
|
- Specs only, and the forced media node stop case of the end-to-end reconciler tests, which now expects the
|
|
reconciler to close the sessions of a node stopped by force.
|