mirror of https://github.com/OpenVidu/openvidu.git
1.8 KiB
1.8 KiB
MODIFIED Requirements
Requirement: Lost egress and ingress representation
Edition: CE and PRO servers. Egress and ingress lost with their node SHALL be closed by the real
EGRESS_ENDED (FAILED) and INGRESS_ENDED events of the server-side reconciler, projected as failed
and error; the store reconciler SHALL close only candidate egress and ingress sessions, always as
failed or error, never complete.
Scenario: Egress lost after the room is gone
- GIVEN an egress whose handler died and whose room was deleted
- WHEN the server-side reconciler emits
EGRESS_ENDEDwith status FAILED and error "egress lost" - THEN the egress document has
status: "failed",errorfrom the event andclosedBy: "event"
Scenario: Ingress lost after the room is gone
- GIVEN a publishing ingress session whose ingress service died and whose room was deleted
- WHEN the server-side reconciler resets its state to
ENDPOINT_INACTIVEwith error "ingress lost" and emitsINGRESS_ENDED - THEN the ingress session has
status: "error",error: "ingress lost"andclosedBy: "event", and the ingress isinactive, ready for another session
Scenario: Store fallback for an egress
- GIVEN a candidate egress (room closed for more than 2 × cleanup interval, node dead)
- WHEN the reconciler closes it
- THEN it has
status: "failed",error: "egress lost (reconciled)",closedBy: "reconciler",endedAt = max(room.endedAt, egress.updatedAt)and a syntheticEGRESS_ENDEDevent exists
Scenario: Store fallback for an ingress session
- GIVEN a candidate ingress session
- WHEN the reconciler closes it
- THEN it has
status: "error",error: "ingress lost (reconciled)",closedBy: "reconciler",endedAt = max(room.endedAt, session.startedAt)and its ingress document reflects the ended session