Change in osmo-bsc[master]: lchan_fsm: fix failure handling: notify conn when released
Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/11312 ) Change subject: lchan_fsm: fix failure handling: notify conn when released .. lchan_fsm: fix failure handling: notify conn when released Usually, conn->lchan is set to NULL before/upon releasing it. However, if the lchan is still associated with a conn upon/after release, make sure the conn realizes it has no lchan and sends a BSSMAP Clear Request to the MSC. lchan_reset() is the last step before an lchan is fully unused. In there, make sure to notify any conn that might still be associated, with gscon_forget_lchan(). lchan_cleanup() does the same, but in fact this is only called when an lchan is *deallocated*, but instead it usually merely goes to the UNUSED state. It may make sense to call gscon_forget_lchan() sooner, e.g. when entering a releasing state. This here nevertheless is a final safeguard. Related: osmo-ttcn3-hacks If772dbbc5f9790d3f911465e1303dd0a99811154 Change-Id: I88337a18246c44ba48da64bb611a3cbb647a750e --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 4aaedde..9f2d6c3 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -368,6 +368,9 @@ { LOG_LCHAN(lchan, LOGL_DEBUG, "Clearing lchan state\n"); + if (lchan->conn) + gscon_forget_lchan(lchan->conn, lchan); + if (lchan->rqd_ref) { talloc_free(lchan->rqd_ref); lchan->rqd_ref = NULL; -- To view, visit https://gerrit.osmocom.org/11312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I88337a18246c44ba48da64bb611a3cbb647a750e Gerrit-Change-Number: 11312 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (102)
Change in osmo-bsc[master]: lchan_fsm: fix failure handling: notify conn when released
Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/11312 ) Change subject: lchan_fsm: fix failure handling: notify conn when released .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/11312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I88337a18246c44ba48da64bb611a3cbb647a750e Gerrit-Change-Number: 11312 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (102) Gerrit-Comment-Date: Fri, 12 Oct 2018 06:21:03 + Gerrit-HasComments: No Gerrit-HasLabels: Yes
Change in osmo-bsc[master]: lchan_fsm: fix failure handling: notify conn when released
Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/11312 Change subject: lchan_fsm: fix failure handling: notify conn when released .. lchan_fsm: fix failure handling: notify conn when released Usually, conn->lchan is set to NULL before/upon releasing it. However, if the lchan is still associated with a conn upon/after release, make sure the conn realizes it has no lchan and sends a BSSMAP Clear Request to the MSC. lchan_reset() is the last step before an lchan is fully unused. In there, make sure to notify any conn that might still be associated, with gscon_forget_lchan(). lchan_cleanup() does the same, but in fact this is only called when an lchan is *deallocated*, but instead it usually merely goes to the UNUSED state. It may make sense to call gscon_forget_lchan() sooner, e.g. when entering a releasing state. This here nevertheless is a final safeguard. Related: osmo-ttcn3-hacks If772dbbc5f9790d3f911465e1303dd0a99811154 Change-Id: I88337a18246c44ba48da64bb611a3cbb647a750e --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/11312/1 diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 4aaedde..9f2d6c3 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -368,6 +368,9 @@ { LOG_LCHAN(lchan, LOGL_DEBUG, "Clearing lchan state\n"); + if (lchan->conn) + gscon_forget_lchan(lchan->conn, lchan); + if (lchan->rqd_ref) { talloc_free(lchan->rqd_ref); lchan->rqd_ref = NULL; -- To view, visit https://gerrit.osmocom.org/11312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I88337a18246c44ba48da64bb611a3cbb647a750e Gerrit-Change-Number: 11312 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr