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/.
Pau Espin Pedrol gerrit-no-reply at lists.osmocom.orgPau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12949 ) Change subject: bts: Fix race condition in f_dyn_ipa_pdch_(de)act ...................................................................... bts: Fix race condition in f_dyn_ipa_pdch_(de)act Test BTS_Tests.TC_dyn_osmo_pdch_act_deact was sporadically failing due to receiving IND_INFO on the PCU port with pdch_mask related TS bit set to 0 after sending a PDCH ACT. That happened due to a race condition because PCU send IND_INFO periodically. As a result, it can happen that BTS sends an IND_INFO after PCU.clear was called and before the PDCH ACT is handled. Change-Id: If11ef05d97aa5f6caaa731f3817c1fecfc3edf7c --- M bts/BTS_Tests.ttcn 1 file changed, 18 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index f7caac2..230d3b6 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -3182,13 +3182,21 @@ PCU.clear; RSL.send(ts_RSL_IPA_PDCH_ACT(g_chan_nr)); /* expect INFO_IND on PCU interface listing TS as PDCH */ + timer T_wait := 2.0; + T_wait.start; alt { [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd { if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '1'B) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "PCUIF_INFO_IND PDCH_MASK not '1' after PDCH ACT"); + log("PCUIF_INFO_IND PDCH_MASK not yet '1' after PDCH ACT on TS", g_chan_nr.tn, + " mask:", sd.data.u.info_ind.trx[trx_nr].pdch_mask); + repeat; } } [] PCU.receive { repeat; } + [] T_wait.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Timeout waiting for PCUIF_INFO_IND PDCH_MASK to be '1' on TS", g_chan_nr.tn)); + } } /* try to activate this PDCH from the PCU point of view */ PCU.send(t_SD_PCUIF(pcu_conn_id, ts_PCUIF_ACT_REQ(bts_nr, trx_nr, g_chan_nr.tn))); @@ -3204,13 +3212,21 @@ RSL.send(ts_RSL_IPA_PDCH_DEACT(g_chan_nr)); PCU.clear; /* expect BTS to ask PCU to deactivate the channel */ + timer T_wait := 2.0; + T_wait.start; alt { [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd { if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '0'B) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "PCUIF_INFO_IND PDCH_MASK not '0' after PDCH DEACT"); + log("PCUIF_INFO_IND PDCH_MASK not yet '0' after PDCH DEACT on TS", g_chan_nr.tn, + " mask:", sd.data.u.info_ind.trx[trx_nr].pdch_mask); + repeat; } } [] PCU.receive { repeat; } + [] T_wait.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Timeout waiting for PCUIF_INFO_IND PDCH_MASK to be '0' on TS", g_chan_nr.tn)); + } } /* Emulate PCU asking BTS to deactivate PDCH */ PCU.send(t_SD_PCUIF(pcu_conn_id, ts_PCUIF_DEACT_REQ(bts_nr, trx_nr, g_chan_nr.tn))); -- To view, visit https://gerrit.osmocom.org/12949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If11ef05d97aa5f6caaa731f3817c1fecfc3edf7c Gerrit-Change-Number: 12949 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190221/96fd7bfe/attachment.htm>