mirror of https://github.com/OpenVidu/openvidu.git
1.7 KiB
1.7 KiB
Proposal
Why
When the ingress service that owns a publishing session dies and the session's room or participant is gone, the
server-side reconciler resets the ingress state to ENDPOINT_INACTIVE, so that a reusable ingress can be used again,
and emits INGRESS_ENDED. The state carries no error, so the writer stores the lost session as inactive, the status
of a session that ended normally. The spec requires lost ingress sessions to be projected as error.
What Changes
- The server-side reset keeps
ENDPOINT_INACTIVEand sets the state's error toingress lost. - The writer projects an
INGRESS_ENDEDwhose state isENDPOINT_INACTIVEwith an error as a session inerror, with that error. The ingress itself staysinactive, ready for its next session.
Scope excludes the following:
- The store reconciler's fallback for ingress sessions, which already closes them as
error. - Egress, whose server-side reconciler already ends lost egress as
FAILED.
Edition: CE and PRO (server and writer). Repositories: openvidu-livekit (pkg/service/openvidu_reconciler.go,
openvidu/analytics/projection) and the specs of the dashboard.
CHANGELOG: none. The reconciler and the data model have not shipped in a release.
Capabilities
New Capabilities
None.
Modified Capabilities
server-reconciler: the server-side end of a lost ingress session carriesingress lostand is projected aserror.
Impact
- Server: the reset of
reconcileIngressessetsIngressState.Error. - Writer: the ingress session status of
INGRESS_ENDED. Unit or integration test of both. - The end-to-end reconciler tests of the deployments, whose lost ingress case already expects
error.