neels has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-bsc/+/28061
)
Change subject: fix fallout from: 'stats: new trackers for lchan life duration'
......................................................................
fix fallout from: 'stats: new trackers for lchan life duration'
In lchan_reset(), ensure that the time_cc timer is actually inactive
before nulling the entire lchan state.
This fixes an infinite-loop deadlock as described in OS#5554:
- run BSC_Tests.TC_chan_act_ack_est_ind_noreply
- restart the BTS process after the test is done
- osmo-bsc enters infinite loop in osmo_timer_del()
The reason is that lchan_reset() is called from a different place than
lchan_fsm_unused_onenter(), where the time_cc is stopped first. The
timer is still active when lchan_reset() clears all lchan state.
Related: OS#5554
Change-Id: I901bb86a78d7d021c8efe751fd9d93e5956ac0e0
---
M src/osmo-bsc/lchan_fsm.c
1 file changed, 2 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/28061/1
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c
index d693189..4f1a2e5 100644
--- a/src/osmo-bsc/lchan_fsm.c
+++ b/src/osmo-bsc/lchan_fsm.c
@@ -528,6 +528,8 @@
lchan->mgw_endpoint_ci_bts = NULL;
}
+ osmo_time_cc_cleanup(&lchan->active_cc);
+
/* NUL all volatile state */
*lchan = (struct gsm_lchan){
.ts = lchan->ts,
--
To view, visit
https://gerrit.osmocom.org/c/osmo-bsc/+/28061
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I901bb86a78d7d021c8efe751fd9d93e5956ac0e0
Gerrit-Change-Number: 28061
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-MessageType: newchange