On 11/10/2014 03:57 PM, Holger Hans Peter Freyther wrote:
[...]
a.) The lchan has been re-used and
"old_lchan" is already for someone
new.
b.) We start the handover too early. E.g. while still trying to
determine the subscriber?
diff --git a/openbsc/src/libbsc/handover_logic.c b/openbsc/src/libbsc/handover_logic.c
index 22f9883..d7e1a16 100644
--- a/openbsc/src/libbsc/handover_logic.c
+++ b/openbsc/src/libbsc/handover_logic.c
@@ -93,6 +93,9 @@ int bsc_handover_start(struct gsm_lchan *old_lchan, struct gsm_bts
*bts)
if (bsc_ho_by_old_lchan(old_lchan))
return -EBUSY;
+ if (!old_lchan->conn->subscr)
+ return -EBUSY;
+
DEBUGP(DHO, "(old_lchan on BTS %u, new BTS %u)\n",
old_lchan->ts->trx->bts->nr, bts->nr);
this would be a band-aid and it would be interesting if you still see
the crash.
Thanks! I'll apply it to the current version we use, deploy it and
see
if we still see the same issue.
Cheers
Ciaby