<p>Neels Hofmeyr has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/11715">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">dbug log: verbosely detach conn<->lchan<br><br>When reading the log of OS#3686, I wished for explicit logging of when exactly<br>an lchan disassociates from a conn. Here is the debug logging I would have<br>liked to see.<br><br>I'm not sure whether we really need to merge this patch...<br><br>Change-Id: I97558b899e7f2578ba98287e7352dc072d02ce44<br>---<br>M src/osmo-bsc/bsc_subscr_conn_fsm.c<br>M src/osmo-bsc/lchan_fsm.c<br>2 files changed, 38 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/15/11715/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c</span><br><span>index bca9e1f..4d6521f 100644</span><br><span>--- a/src/osmo-bsc/bsc_subscr_conn_fsm.c</span><br><span>+++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c</span><br><span>@@ -651,14 +651,36 @@</span><br><span> /* An lchan was deallocated. */</span><br><span> void gscon_forget_lchan(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+   const char *detach_label = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+      if (!conn)</span><br><span style="color: hsl(120, 100%, 40%);">+            return;</span><br><span>      if (!lchan)</span><br><span>          return;</span><br><span style="color: hsl(0, 100%, 40%);">- if (conn->assignment.new_lchan == lchan)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (conn->assignment.new_lchan == lchan) {</span><br><span>                conn->assignment.new_lchan = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-   if (conn->ho.new_lchan == lchan)</span><br><span style="color: hsl(120, 100%, 40%);">+           detach_label = "assignment.new_lchan";</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (conn->ho.new_lchan == lchan) {</span><br><span>                conn->ho.new_lchan = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-   if (conn->lchan == lchan)</span><br><span style="color: hsl(120, 100%, 40%);">+          detach_label = "ho.new_lchan";</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (conn->lchan == lchan) {</span><br><span>               conn->lchan = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+                detach_label = "primary lchan";</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Log for both lchan FSM and conn FSM to ease reading the log in case of problems */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (detach_label) {</span><br><span style="color: hsl(120, 100%, 40%);">+           if (conn->fi)</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGPFSML(conn->fi, LOGL_DEBUG, "conn detaches lchan %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                lchan->fi? osmo_fsm_inst_name(lchan->fi) : gsm_lchan_name(lchan));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           if (lchan->fi)</span><br><span style="color: hsl(120, 100%, 40%);">+                     LOGPFSML(lchan->fi, LOGL_DEBUG, "conn %s detaches lchan (%s)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                          conn->fi? osmo_fsm_inst_name(conn->fi) : "(conn without FSM)",</span><br><span style="color: hsl(120, 100%, 40%);">+                                detach_label);</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span> </span><br><span>        if (conn->fi->state != ST_CLEARING</span><br><span>         && !conn->lchan</span><br><span>diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c</span><br><span>index d95620f..726a5bb 100644</span><br><span>--- a/src/osmo-bsc/lchan_fsm.c</span><br><span>+++ b/src/osmo-bsc/lchan_fsm.c</span><br><span>@@ -1356,8 +1356,21 @@</span><br><span> /* The conn is deallocating, just forget all about it */</span><br><span> void lchan_forget_conn(struct gsm_lchan *lchan)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+      struct gsm_subscriber_connection *conn;</span><br><span>      if (!lchan)</span><br><span>          return;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     conn = lchan->conn;</span><br><span style="color: hsl(120, 100%, 40%);">+        if (conn) {</span><br><span style="color: hsl(120, 100%, 40%);">+           /* Log for both lchan FSM and conn FSM to ease reading the log in case of problems */</span><br><span style="color: hsl(120, 100%, 40%);">+         if (lchan->fi)</span><br><span style="color: hsl(120, 100%, 40%);">+                     LOGPFSML(lchan->fi, LOGL_DEBUG, "lchan detaches from conn %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                          conn->fi? osmo_fsm_inst_name(conn->fi) : "(conn without FSM)");</span><br><span style="color: hsl(120, 100%, 40%);">+              if (conn->fi)</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGPFSML(conn->fi, LOGL_DEBUG, "lchan %s detaches from conn\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                           lchan->fi? osmo_fsm_inst_name(lchan->fi) : gsm_lchan_name(lchan));</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  lchan_forget_mgw_endpoint(lchan);</span><br><span>    lchan->conn = NULL;</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11715">change 11715</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/11715"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I97558b899e7f2578ba98287e7352dc072d02ce44 </div>
<div style="display:none"> Gerrit-Change-Number: 11715 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>