Changes
Started by upstream project gerrit-osmo-bsc #1738
Started 1 day 1 hr ago
Queued 4 min 47 sec
Took 4 min 58 sec
on build4-deb12build-ansible
lchan_fsm: ignore late lchan_rtp_fsm events
The lchan_rtp_fsm is a child FSM that manages the MGW/RTP endpoint.
When the parent lchan_fsm transitions away before the child has
finished its work (e.g. a CRCX timeout or a DLCX completing after
the lchan is already idle), the child can still deliver
LCHAN_EV_RTP_RELEASED or LCHAN_EV_RTP_ERROR to the parent.
Currently these late events are not in the in_event_mask of every
state that can be reached with the child still running:
* LCHAN_ST_UNUSED: entered from WAIT_AFTER_ERROR after the error timer
fires, while a DLCX triggered at error time may still be in flight.
* LCHAN_ST_WAIT_AFTER_ERROR: already handles LCHAN_EV_RTP_RELEASED but
misses LCHAN_EV_RTP_ERROR (e.g. CRCX timeout arriving after the
NACK was handled).
Add the missing events to both states' in_event_mask and provide a
no-op handler in lchan_fsm_unused() so that the assert is not hit.
Change-Id: Ie6333bd941e4e5a6ddf0e3f113b8764e8bc2bbc0
The lchan_rtp_fsm is a child FSM that manages the MGW/RTP endpoint.
When the parent lchan_fsm transitions away before the child has
finished its work (e.g. a CRCX timeout or a DLCX completing after
the lchan is already idle), the child can still deliver
LCHAN_EV_RTP_RELEASED or LCHAN_EV_RTP_ERROR to the parent.
Currently these late events are not in the in_event_mask of every
state that can be reached with the child still running:
* LCHAN_ST_UNUSED: entered from WAIT_AFTER_ERROR after the error timer
fires, while a DLCX triggered at error time may still be in flight.
* LCHAN_ST_WAIT_AFTER_ERROR: already handles LCHAN_EV_RTP_RELEASED but
misses LCHAN_EV_RTP_ERROR (e.g. CRCX timeout arriving after the
NACK was handled).
Add the missing events to both states' in_event_mask and provide a
no-op handler in lchan_fsm_unused() so that the assert is not hit.
Change-Id: Ie6333bd941e4e5a6ddf0e3f113b8764e8bc2bbc0