Fix: Drop an sgNB release request if no SCTP endpoint available
In the eNB logs (enb_031000.log
):
9059714.735284 [SCTP] I (sctp_send_data:658) Successfully sent 69 bytes on stream 1 for assoc_id 8906
9059714.739300 [SCTP] I (sctp_eNB_flush_sockets:1077) Found data for descriptor 97
9059714.739316 [SCTP] I (sctp_eNB_read_from_socket:1047[8906][97] Msg of length 22 received, on stream 1, PPID 18
9059714.739362 [RRC] I (rrc_eNB_generate_RRCConnection[FRAME 00000][eNB][MOD 00][RNTI 93e3] Logical Channel DL-DCCH, Generate RRCConnectionRelease (bytes 3)
9059714.739375 [RRC] I (rrc_data_req:89) sent RRC_DCCH_DATA_REQ to TASK_PDCP_ENB
9059714.915076 [MAC] I (check_ul_failure:431) UE 1 rnti 93e3: UL Failure timer 1
9059718.913888 [MAC] I (check_ul_failure:488) UE 1 rnti 93e3: UL Failure after repeated PDCCH orders: Triggering RRC
9059718.913908 [RRC] I (mac_eNB_rrc_ul_failure:400) Frame 809, Subframe 6: UE 93e3 UL failure, activating timer
9059725.159789 [PHY] W (pusch_procedures:1499) Removing stale ULSCH config for UE 93e3 harq_pid 3 (harq_mask is now 0x01)
9059725.163859 [PHY] W (pusch_procedures:1499) Removing stale ULSCH config for UE 93e3 harq_pid 0 (harq_mask is now 0x00)
9059726.568727 [SCTP] I (sctp_eNB_flush_sockets:1077) Found data for descriptor 216
9059726.568753 [SCTP] I (sctp_eNB_read_from_socket:974)Received notification for sd 216, type 32773
9059726.568759 [SCTP] W (sctp_eNB_read_from_socket:980)Received SCTP SHUTDOWN EVENT
9059726.568791 [X2AP] E (x2ap_eNB_handle_sctp_associatix2ap_enb_data_p not NULL and sctp state not SCTP_STATE_ESTABLISHED?
9059738.911717 [RRC] I (rrc_subframe_process:8813) Removing UE 93e3 instance, because of uplink failure timer timeout
9059738.911737 [RRC] I (rrc_eNB_free_UE:942) [eNB 0] S1AP_UE_CONTEXT_RELEASE_REQ sent for RNTI 93e3, cause 21, radio connection with ue lost
Assertion (target != ((void *)0)) failed!
In x2ap_eNB_handle_sgNB_release_request() /tmp/CI-NSA-eNB/openair2/X2AP/x2ap_eNB.c:624
My interpretation:
- S1AP (?) message to release connection -> RRC generate RRCConnectionRelease
- UL failure, the UE has a problem or is gone, can happen
- we wait
- We get an SCTP shutdown event on another descriptor than in 1) -> X2AP says SCTP is not established [gNB does not wanna play anymore, either]
- RRC timer times out and triggers X2 sGNB Release Request
- X2 panics since the endpoint is gone
-> X2 can silently drop the release request since there is nothing to release. Ok?