Change in osmo-bts[master]: Delay abis reconnect while bts is shutting down

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/.

pespin gerrit-no-reply at lists.osmocom.org
Wed Sep 29 17:58:18 UTC 2021


pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25646 )


Change subject: Delay abis reconnect while bts is shutting down
......................................................................

Delay abis reconnect while bts is shutting down

Avoid re-connecting to a new BSC while BTS is in shutting down. All the
FSMs are complex enough to even try to re-start when stopping has not
yet finished...

Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377
---
M include/osmo-bts/bts_shutdown_fsm.h
M src/common/abis.c
M src/common/bts_shutdown_fsm.c
3 files changed, 17 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/25646/1

diff --git a/include/osmo-bts/bts_shutdown_fsm.h b/include/osmo-bts/bts_shutdown_fsm.h
index 1e74ac6..76ac6ca 100644
--- a/include/osmo-bts/bts_shutdown_fsm.h
+++ b/include/osmo-bts/bts_shutdown_fsm.h
@@ -39,3 +39,6 @@
 };
 
 extern struct osmo_fsm bts_shutdown_fsm;
+
+struct gsm_bts;
+bool bts_shutdown_in_progress(const struct gsm_bts *bts);
diff --git a/src/common/abis.c b/src/common/abis.c
index 11111fa..f1fb10c 100644
--- a/src/common/abis.c
+++ b/src/common/abis.c
@@ -53,6 +53,7 @@
 #include <osmo-bts/abis_osmo.h>
 #include <osmo-bts/bts_model.h>
 #include <osmo-bts/bts_trx.h>
+#include <osmo-bts/bts_shutdown_fsm.h>
 
 static struct gsm_bts *g_bts;
 
@@ -137,6 +138,12 @@
 	struct abis_link_fsm_priv *priv = fi->priv;
 	struct gsm_bts *bts = priv->bts;
 
+	if (bts_shutdown_in_progress(bts)) {
+		LOGPFSML(fi, LOGL_NOTICE, "BTS is shutting down, delaying A-bis connection establishment to BSC\n");
+		osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0);
+		return;
+	}
+
 	if (pick_next_bsc(fi) < 0) {
 		LOGPFSML(fi, LOGL_FATAL, "No BSC available, A-bis connection establishment failed\n");
 		osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0);
diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c
index 85d2d83..600407a 100644
--- a/src/common/bts_shutdown_fsm.c
+++ b/src/common/bts_shutdown_fsm.c
@@ -237,10 +237,16 @@
 	OSMO_ASSERT(osmo_fsm_register(&bts_shutdown_fsm) == 0);
 }
 
+bool bts_shutdown_in_progress(const struct gsm_bts *bts)
+{
+	struct osmo_fsm_inst *fi = bts->shutdown_fi;
+	return fi->state != BTS_SHUTDOWN_ST_NONE;
+}
+
 void bts_shutdown_ext(struct gsm_bts *bts, const char *reason, bool exit_proc)
 {
 	struct osmo_fsm_inst *fi = bts->shutdown_fi;
-	if (fi->state != BTS_SHUTDOWN_ST_NONE) {
+	if (bts_shutdown_in_progress(bts)) {
 		LOGPFSML(fi, LOGL_NOTICE, "BTS is already being shutdown.\n");
 		if (exit_proc)
 			bts->shutdown_fi_exit_proc = true;

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25646
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377
Gerrit-Change-Number: 25646
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210929/4da6e914/attachment.htm>


More information about the gerrit-log mailing list