dbug log: verbosely detach conn<->lchan
When reading the log of OS#3686, I wished for explicit logging of when exactly an lchan disassociates from a conn. Here is the debug logging I would have liked to see. I'm not sure whether we really need to merge this patch... Change-Id: I97558b899e7f2578ba98287e7352dc072d02ce44
This commit is contained in:
parent
64b092e855
commit
946d1fb5c7
|
@ -651,14 +651,36 @@ void gscon_lchan_releasing(struct gsm_subscriber_connection *conn, struct gsm_lc
|
|||
/* An lchan was deallocated. */
|
||||
void gscon_forget_lchan(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan)
|
||||
{
|
||||
const char *detach_label = NULL;
|
||||
if (!conn)
|
||||
return;
|
||||
if (!lchan)
|
||||
return;
|
||||
if (conn->assignment.new_lchan == lchan)
|
||||
|
||||
if (conn->assignment.new_lchan == lchan) {
|
||||
conn->assignment.new_lchan = NULL;
|
||||
if (conn->ho.new_lchan == lchan)
|
||||
detach_label = "assignment.new_lchan";
|
||||
}
|
||||
if (conn->ho.new_lchan == lchan) {
|
||||
conn->ho.new_lchan = NULL;
|
||||
if (conn->lchan == lchan)
|
||||
detach_label = "ho.new_lchan";
|
||||
}
|
||||
if (conn->lchan == lchan) {
|
||||
conn->lchan = NULL;
|
||||
detach_label = "primary lchan";
|
||||
}
|
||||
|
||||
/* Log for both lchan FSM and conn FSM to ease reading the log in case of problems */
|
||||
if (detach_label) {
|
||||
if (conn->fi)
|
||||
LOGPFSML(conn->fi, LOGL_DEBUG, "conn detaches lchan %s\n",
|
||||
lchan->fi? osmo_fsm_inst_name(lchan->fi) : gsm_lchan_name(lchan));
|
||||
|
||||
if (lchan->fi)
|
||||
LOGPFSML(lchan->fi, LOGL_DEBUG, "conn %s detaches lchan (%s)\n",
|
||||
conn->fi? osmo_fsm_inst_name(conn->fi) : "(conn without FSM)",
|
||||
detach_label);
|
||||
}
|
||||
|
||||
if (conn->fi->state != ST_CLEARING
|
||||
&& !conn->lchan
|
||||
|
|
|
@ -1356,8 +1356,21 @@ void lchan_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause)
|
|||
/* The conn is deallocating, just forget all about it */
|
||||
void lchan_forget_conn(struct gsm_lchan *lchan)
|
||||
{
|
||||
struct gsm_subscriber_connection *conn;
|
||||
if (!lchan)
|
||||
return;
|
||||
|
||||
conn = lchan->conn;
|
||||
if (conn) {
|
||||
/* Log for both lchan FSM and conn FSM to ease reading the log in case of problems */
|
||||
if (lchan->fi)
|
||||
LOGPFSML(lchan->fi, LOGL_DEBUG, "lchan detaches from conn %s\n",
|
||||
conn->fi? osmo_fsm_inst_name(conn->fi) : "(conn without FSM)");
|
||||
if (conn->fi)
|
||||
LOGPFSML(conn->fi, LOGL_DEBUG, "lchan %s detaches from conn\n",
|
||||
lchan->fi? osmo_fsm_inst_name(lchan->fi) : gsm_lchan_name(lchan));
|
||||
}
|
||||
|
||||
lchan_forget_mgw_endpoint(lchan);
|
||||
lchan->conn = NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue