This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
dexter gerrit-no-reply at lists.osmocom.orgdexter has uploaded this change for review. ( https://gerrit.osmocom.org/10333
Change subject: GSCON: avoid sending clear when not connected
......................................................................
GSCON: avoid sending clear when not connected
The function gscon_lchan_releasing() may be called randomly by any other
entity. It then sets the FSM state to ST_CLEARING and sends a BSSMAP
CLEAR REQUEST by using gscon_bssmap_clear()
Normally gscon_bssmap_clear() protects against sending connection
oriented data when no connection is present. This is done by checking
if the FSM state is ST_INIT or ST_WAIT_CC. If yes, then nothing is sent.
Now gscon_lchan_releasing() defeats this check by first setting the FSM
to ST_CLEARING and then trying to send. This causes
osmo_bsc_sigtran_send() to be called and the assertion
OSMO_ASSERT(conn->sccp.msc); blows because we never had a connection so
sccp.msc is unpopulated.
We have the possibility to get around the problem by first checking if
we are in ST_CLEARING. If yes, we do nothing. If not we still must be in
ST_INIT when we never had a connection before. So we may call
on_bssmap_clear() without any problem and then set the state to
ST_CLEARING.
OS#3446
Change-Id: I4eaa983702224e5995a388ea9890ee04212eb569
---
M src/osmo-bsc/bsc_subscr_conn_fsm.c
1 file changed, 3 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/33/10333/1
diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c
index 81fe9f6..bc7539b 100644
--- a/src/osmo-bsc/bsc_subscr_conn_fsm.c
+++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c
@@ -627,9 +627,10 @@
conn->lchan = NULL;
}
if (!conn->lchan) {
- if (conn->fi->state != ST_CLEARING)
+ if (conn->fi->state != ST_CLEARING) {
+ gscon_bssmap_clear(conn, GSM0808_CAUSE_EQUIPMENT_FAILURE);
osmo_fsm_inst_state_chg(conn->fi, ST_CLEARING, 60, 999);
- gscon_bssmap_clear(conn, GSM0808_CAUSE_EQUIPMENT_FAILURE);
+ }
}
}
--
To view, visit https://gerrit.osmocom.org/10333
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: I4eaa983702224e5995a388ea9890ee04212eb569
Gerrit-Change-Number: 10333
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180803/aeb275c7/attachment.htm>