fixeria has submitted this change. ( 
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/39525?usp=email )

 (

1 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted 
one.
 )Change subject: erab_fsm: handle RELEASE.ind in state erab_wait_release_rsp
......................................................................

erab_fsm: handle RELEASE.ind in state erab_wait_release_rsp

This can happen if both MME and eNB initiate the E-RAB RELEASE
procedures simultaneously.  Ignore subsequent release requests.

Change-Id: I68efecf56866e04c71571165f61648d9c37fc173
Related: SYS#7318, SYS#7310
---
M src/erab_fsm.erl
M test/erab_fsm_test.erl
2 files changed, 22 insertions(+), 0 deletions(-)

Approvals:
  pespin: Looks good to me, approved
  Jenkins Builder: Verified




diff --git a/src/erab_fsm.erl b/src/erab_fsm.erl
index c4dbbd6..dbd7ec1 100644
--- a/src/erab_fsm.erl
+++ b/src/erab_fsm.erl
@@ -385,6 +385,16 @@
     ?LOG_DEBUG("Rx E-RAB RELEASE Rsp, we're done"),
     {stop, normal}; %% we're done!

+erab_wait_release_rsp(cast, erab_release_cmd,
+                      #erab_state{}) ->
+    ?LOG_INFO("Rx E-RAB RELEASE Cmd while releasing (ignored)"),
+    keep_state_and_data;
+
+erab_wait_release_rsp(cast, erab_release_ind,
+                      #erab_state{}) ->
+    ?LOG_INFO("Rx E-RAB RELEASE Ind while releasing (ignored)"),
+    keep_state_and_data;
+
 erab_wait_release_rsp(Event, EventData, S) ->
     handle_event(?FUNCTION_NAME, Event, EventData, S).

diff --git a/test/erab_fsm_test.erl b/test/erab_fsm_test.erl
index 232446e..ea508dd 100644
--- a/test/erab_fsm_test.erl
+++ b/test/erab_fsm_test.erl
@@ -57,6 +57,8 @@
       ?TC(fun test_erab_setup_release_ind_success/1)},
      {"E-RAB RELEASE IND (in state erab_wait_setup_rsp) :: success",
       ?TC(fun test_erab_wait_setup_rsp_release_ind_success/1)},
+     {"E-RAB RELEASE IND (in state erab_wait_release_rsp) :: success",
+      ?TC(fun test_erab_wait_release_rsp_release_ind_success/1)},
      {"E-RAB release :: PFCP session deletion error",
       ?TC(fun test_erab_release_pfcp_delete_error/1)}].

@@ -141,6 +143,16 @@
      ?_assertNot(erlang:is_process_alive(Pid))].


+%% test E-RAB RELEASE.ind received in state erab_wait_release_rsp
+test_erab_wait_release_rsp_release_ind_success(Pid) ->
+    [?_assertEqual({ok, ?A2U}, erab_fsm:erab_setup_req(Pid, ?U2C)),
+     ?_assertEqual({ok, ?C2U}, erab_fsm:erab_setup_rsp(Pid, ?U2A)),
+     ?_assertEqual(ok, erab_fsm:erab_release_cmd(Pid)),
+     ?_assertEqual(ok, erab_fsm:erab_release_ind(Pid)), %% ignored
+     ?_assertEqual(ok, erab_fsm:erab_release_rsp(Pid)),
+     ?_assertNot(erlang:is_process_alive(Pid))].
+
+
 test_erab_release_pfcp_delete_error(Pid) ->
     %% pfcp_peer:session_delete_req/1 responds with a reject
     PDU = pfcp_mock:pdu_rsp_reject(session_deletion_response, ?SEID_Loc),

--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/39525?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: I68efecf56866e04c71571165f61648d9c37fc173
Gerrit-Change-Number: 39525
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>

Reply via email to