<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/25567">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  pespin: Looks good to me, approved; Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Revert "abis: Fix line leaked & recreated upon every reconnect"<br><br>This reverts commit bc6d35f52d4d3abd650afb05475ad5a818737fe2.<br><br>Change-Id: I15063f0156ed8910795cd5ffe045e2d0cbca6276<br>---<br>M include/osmo-bts/abis.h<br>M src/common/abis.c<br>2 files changed, 12 insertions(+), 12 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h</span><br><span>index d5cf634..40707cd 100644</span><br><span>--- a/include/osmo-bts/abis.h</span><br><span>+++ b/include/osmo-bts/abis.h</span><br><span>@@ -8,7 +8,7 @@</span><br><span> </span><br><span> enum abis_link_fsm_event {</span><br><span>        ABIS_LINK_EV_SIGN_LINK_OML_UP,</span><br><span style="color: hsl(0, 100%, 40%);">-  ABIS_LINK_EV_SIGN_LINK_DOWN, /* data: struct e1inp_line* of link going down */</span><br><span style="color: hsl(120, 100%, 40%);">+        ABIS_LINK_EV_SIGN_LINK_DOWN,</span><br><span>         ABIS_LINK_EV_VTY_RM_ADDR, /* data: struct bsc_oml_host* being removed */</span><br><span> };</span><br><span> </span><br><span>diff --git a/src/common/abis.c b/src/common/abis.c</span><br><span>index b734576..93635c2 100644</span><br><span>--- a/src/common/abis.c</span><br><span>+++ b/src/common/abis.c</span><br><span>@@ -81,6 +81,7 @@</span><br><span>      struct bsc_oml_host *current_bsc;</span><br><span>    struct gsm_bts *bts;</span><br><span>         char *model_name;</span><br><span style="color: hsl(120, 100%, 40%);">+     int line_ctr;</span><br><span> };</span><br><span> </span><br><span> static void reset_oml_link(struct gsm_bts *bts)</span><br><span>@@ -155,7 +156,15 @@</span><br><span>            bts_dev_info.unit_name = bts->description;</span><br><span>        bts_dev_info.location2 = priv->model_name;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       line = e1inp_line_create(0, "ipa");   /* already comes with a reference "ctor" */</span><br><span style="color: hsl(120, 100%, 40%);">+ line = e1inp_line_find(priv->line_ctr);</span><br><span style="color: hsl(120, 100%, 40%);">+    if (line) {</span><br><span style="color: hsl(120, 100%, 40%);">+           e1inp_line_get2(line, __FILE__);        /* We want a new reference for returned line */</span><br><span style="color: hsl(120, 100%, 40%);">+       } else</span><br><span style="color: hsl(120, 100%, 40%);">+                line = e1inp_line_create(priv->line_ctr, "ipa");   /* already comes with a reference */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* The abis connection may fail and we may have to try again with a different BSC (if configured). The next</span><br><span style="color: hsl(120, 100%, 40%);">+    * attempt must happen on a different line. */</span><br><span style="color: hsl(120, 100%, 40%);">+        priv->line_ctr++;</span><br><span> </span><br><span>     if (!line) {</span><br><span>                 osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0);</span><br><span>@@ -177,17 +186,13 @@</span><br><span> {</span><br><span>         struct abis_link_fsm_priv *priv = fi->priv;</span><br><span>       struct gsm_bts *bts = priv->bts;</span><br><span style="color: hsl(0, 100%, 40%);">-     struct e1inp_line *line;</span><br><span> </span><br><span>         switch (event) {</span><br><span>     case ABIS_LINK_EV_SIGN_LINK_OML_UP:</span><br><span>          osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0);</span><br><span>           break;</span><br><span>       case ABIS_LINK_EV_SIGN_LINK_DOWN:</span><br><span style="color: hsl(0, 100%, 40%);">-               line = (struct e1inp_line *)data;</span><br><span>            reset_oml_link(bts);</span><br><span style="color: hsl(0, 100%, 40%);">-            /* Drop reference obtained through e1inp_line_create() to get rid of the line object: */</span><br><span style="color: hsl(0, 100%, 40%);">-                e1inp_line_put2(line, "ctor");</span><br><span>             osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0);</span><br><span>                break;</span><br><span>       default:</span><br><span>@@ -205,7 +210,6 @@</span><br><span>       struct abis_link_fsm_priv *priv = fi->priv;</span><br><span>       struct gsm_bts *bts = priv->bts;</span><br><span>  struct gsm_bts_trx *trx;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct e1inp_line *line = (struct e1inp_line *)data;</span><br><span>         OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN);</span><br><span> </span><br><span>       /* First remove the OML signalling link */</span><br><span>@@ -228,10 +232,6 @@</span><br><span>             * that TRX only. But libosmo-abis expects us to drop the entire</span><br><span>              * line when something goes wrong... */</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       /* Drop reference obtained through e1inp_line_create() to get rid of the line object: */</span><br><span style="color: hsl(0, 100%, 40%);">-        e1inp_line_put2(line, "ctor");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>     bts_model_abis_close(bts);</span><br><span>   osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0);</span><br><span> }</span><br><span>@@ -395,7 +395,7 @@</span><br><span> static void sign_link_down(struct e1inp_line *line)</span><br><span> {</span><br><span>         LOGPIL(line, DABIS, LOGL_ERROR, "Signalling link down\n");</span><br><span style="color: hsl(0, 100%, 40%);">-    osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_DOWN, line);</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_DOWN, NULL);</span><br><span> }</span><br><span> </span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/25567">change 25567</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/c/osmo-bts/+/25567"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I15063f0156ed8910795cd5ffe045e2d0cbca6276 </div>
<div style="display:none"> Gerrit-Change-Number: 25567 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>