<h3>Description</h3>
<p>Started from the <a href="https://github.com/kamailio/kamailio/blob/master/misc/examples/mixed/kamailio-minimal-proxy.cfg">minimal proxy config</a>, we tried to run <strong>more than 1</strong> process using TLS, and, unforntunately it crashed.</p>
<p>Everything is working fine <strong>using TLS with 1 child</strong>.<br>
Everything is working fine with <strong>more than 1 child process without TLS</strong>.</p>
<p>To ease the reproduction, we set an env var called <code>TARGET</code> at container instanciation, its value is set to a reachable SIP address using TLS (without DNS resolution).</p>
<p>To reproduce issue you will need pjsip/pjsua with SSL/TLS enabled:</p>
<ul>
<li>install OpenSSL (<code>sudo apt-get install openssl</code> for ubuntu)</li>
<li><a href="https://trac.pjsip.org/repos/wiki/Getting-Started/Autoconf" rel="nofollow">install pjsip using autoconf</a></li>
<li><a href="https://trac.pjsip.org/repos/wiki/TLS" rel="nofollow">manually configure TLS support if necessary</a></li>
<li><a href="https://trac.pjsip.org/repos/wiki/Python_SIP/Build_Install" rel="nofollow">build and install pjsua</a></li>
</ul>
<p>We've seen on some issues that a low memory allocation could be an issue using TLS, so we are running kamailio using more memory <code>kamailio -DD -E -M 256 -m 1024</code> (still crashing).</p>
<h3>Troubleshooting</h3>
<h4>Reproduction</h4>
<p>Here are the steps to reproduce the issue:</p>
<ul>
<li>start from <a href="https://github.com/kamailio/kamailio/blob/master/misc/examples/mixed/kamailio-minimal-proxy.cfg">Kamailio minimal proxy config</a></li>
<li>enable TLS by adding/uncommenting following lines:</li>
</ul>
<div class="highlight highlight-source-diff"><pre><span class="pl-mdr">@@ -1,4 +1,5 @@</span>
 #!KAMAILIO
<span class="pl-mi1"><span class="pl-mi1">+</span>#!define WITH_TLS</span>
 #
 # Kamailio (OpenSER) SIP Server v5.2 - default configuration script
 #     - web: https://www.kamailio.org
<span class="pl-mdr">@@ -28,7 +29,7 @@</span>
 ####### Global Parameters #########

 ### LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR
<span class="pl-md"><span class="pl-md">-</span>debug=2</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>debug=3</span>
 log_stderror=no

 memdbg=5
<span class="pl-mdr">@@ -38,10 +39,13 @@</span> log_facility=LOG_LOCAL0
 log_prefix="{$mt $hdr(CSeq) $ci} "

 /* number of SIP routing processes */
<span class="pl-md"><span class="pl-md">-</span>children=2</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>children=1</span>

 /* uncomment the next line to disable TCP (default on) */
 # disable_tcp=yes
<span class="pl-mi1"><span class="pl-mi1">+</span>#!ifdef WITH_TLS</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>enable_tls=yes</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>#!endif</span>

 /* uncomment the next line to disable the auto discovery of local aliases
  * based on reverse DNS on IPs (default on) */
<span class="pl-mdr">@@ -65,6 +69,9 @@</span> children=2
 ####### Modules Section ########

 /* set paths to location of modules */
<span class="pl-mi1"><span class="pl-mi1">+</span>#!ifdef WITH_TLS</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>loadmodule "tls.so"</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>#!endif</span>
 loadmodule "jsonrpcs.so"
 loadmodule "kex.so"
 loadmodule "corex.so"
<span class="pl-mdr">@@ -85,6 +92,9 @@</span> loadmodule "counters.so"

 # ----------------- setting module-specific parameters ---------------

<span class="pl-mi1"><span class="pl-mi1">+</span>#!ifdef WITH_TLS</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>modparam("tls", "config", "/etc/kamailio/tls.cfg")</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>#!endif</span>

 # ----- jsonrpcs params -----
 modparam("jsonrpcs", "pretty_format", 1)
<span class="pl-mdr">@@ -180,7 +190,7 @@</span> request_route {
        }

        # update $du to set the destination address for proxying
<span class="pl-md"><span class="pl-md">-</span>       $du = "sip:" + $rd + ":9";</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>       $du = $env(TARGET);</span>
        route(RELAY);
        exit;
 }</pre></div>
<ul>
<li>use a proper <code>tls.cfg</code> file with self-signed certificates:</li>
</ul>
<div class="highlight highlight-source-c"><pre>[server:<span class="pl-k">default</span>]
method = TLSv1
verify_certificate = no
require_certificate = no
private_key = /etc/kamailio/privkey.pem
certificate = /etc/kamailio/server-cert.pem

[client:<span class="pl-k">default</span>]
#method = TLSv1
verify_certificate = no
require_certificate = no</pre></div>
<ul>
<li>use following <code>Dockerfile</code>:</li>
</ul>
<pre lang="docker"><code>FROM kamailio/kamailio-ci:master-alpine

# Override default kamailio configuration
COPY kamailio.cfg /etc/kamailio/kamailio.cfg
COPY tls.cfg /etc/kamailio/tls.cfg
COPY privkey.pem /etc/kamailio/privkey.pem
COPY server-cert.pem /etc/kamailio/server-cert.pem
</code></pre>
<ul>
<li>build docker image <code>docker build -f Dockerfile -t kamailio-tls-issue .</code></li>
<li>launch docker container using your own <code>TARGET</code>:</li>
</ul>
<div class="highlight highlight-source-shell"><pre>docker run -it -p 5061:5061/tcp -e <span class="pl-s"><span class="pl-pds">"</span>TARGET=sip:AA.BB.CC.DD;transport=tls<span class="pl-pds">"</span></span> kamailio-tls-issue</pre></div>
<ul>
<li>make a SIP call with pjsua:</li>
</ul>
<div class="highlight highlight-source-shell"><pre>pjsua --stun-srv=stun.l.google.com:19302 --use-tls --no-tcp --no-udp --use-srtp=2 --local-port=5062 --id=sip:alice@localhost <span class="pl-s"><span class="pl-pds">"</span>sip:bob@localhost;transport=tls<span class="pl-pds">"</span></span></pre></div>
<p><strong>Everything should work fine because we only used 1 child process</strong></p>
<ul>
<li>stop everything</li>
<li>update your <code>kamailio.cfg</code> by setting <code>children=2</code> (or above)</li>
<li>reproduce steps (build docker image, launch container, make a SIP call)</li>
<li>kamailio should crash with specific logs (see <code>Log messages</code> section)</li>
</ul>
<h4>Log Messages</h4>
<p>Log messages from kamailio proxy:</p>
<div class="highlight highlight-source-c"><pre><span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <script>: new branch [<span class="pl-c1">0</span>] to sip:bob@localhost;transport=tls
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/msg_translator.c:<span class="pl-c1">2933</span>]: create_via_hf(): id added: <;i=<span class="pl-c1">1</span>>, rcv proto=<span class="pl-c1">3</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/tcp_main.c:<span class="pl-c1">1747</span>]: tcp_send(): no open tcp connection found, opening new one
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/ip_addr.c:<span class="pl-c1">229</span>]: print_ip(): tcpconn_new: new tcp connection: <span class="pl-c1">34.240.160.168</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/tcp_main.c:<span class="pl-c1">999</span>]: tcpconn_new(): on port <span class="pl-c1">5061</span>, type <span class="pl-c1">3</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/tcp_main.c:<span class="pl-c1">1305</span>]: tcpconn_add(): hashes: <span class="pl-c1">1752</span>:<span class="pl-c1">0</span>:<span class="pl-c1">0</span>, <span class="pl-c1">2</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} tls [tls_server.c:<span class="pl-c1">199</span>]: tls_complete_init(): completing tls connection initialization
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} tls [tls_server.c:<span class="pl-c1">162</span>]: tls_get_connect_server_name(): xavp with outbound server name not found
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} tls [tls_server.c:<span class="pl-c1">142</span>]: tls_get_connect_server_id(): xavp with outbound server id not found
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} tls [tls_server.c:<span class="pl-c1">228</span>]: tls_complete_init(): Using initial TLS domain TLSc<<span class="pl-k">default</span>> (dom <span class="pl-c1">0x7fe7740bdaf0</span> ctx <span class="pl-c1">0x55d98553ca40</span> sn [])
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} tls [tls_domain.c:<span class="pl-c1">1155</span>]: tls_lookup_private_key(): Private key lookup <span class="pl-k">for</span> SSL_CTX-<span class="pl-c1">0x55d98553ca40</span>: <span class="pl-c1">0</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} tls [tls_domain.c:<span class="pl-c1">737</span>]: sr_ssl_ctx_info_callback(): SSL handshake started
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/tcp_main.c:<span class="pl-c1">2641</span>]: tcpconn_1st_send(): pending write on new connection <span class="pl-c1">0x7fe7742cd200</span> (-<span class="pl-c1">1</span>/<span class="pl-c1">122</span> bytes written) (err: <span class="pl-c1">11</span> - Resource temporarily unavailable)
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) DEBUG: <core> [core/tcp_main.c:<span class="pl-c1">3540</span>]: handle_ser_child(): read response= 7fe7742cd200, <span class="pl-c1">5</span>, fd <span class="pl-c1">29</span> from <span class="pl-c1">11</span> (<span class="pl-c1">16</span>)
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) DEBUG: <core> [core/io_wait.h:<span class="pl-c1">380</span>]: io_watch_add(): DBG: io_watch_add(<span class="pl-c1">0x55d984d52f20</span>, <span class="pl-c1">29</span>, <span class="pl-c1">2</span>, <span class="pl-c1">0x7fe7742cd200</span>), fd_no=<span class="pl-c1">18</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <span class="pl-c1">tm</span> [t_funcs.c:<span class="pl-c1">372</span>]: t_relay_to(): new transaction forwarded
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/receive.c:<span class="pl-c1">353</span>]: receive_msg(): request-route executed in: <span class="pl-c1">10827</span> usec
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/usr_avp.c:<span class="pl-c1">636</span>]: destroy_avp_list(): destroying list <span class="pl-c1">0</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/usr_avp.c:<span class="pl-c1">636</span>]: destroy_avp_list(): destroying list <span class="pl-c1">0</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/usr_avp.c:<span class="pl-c1">636</span>]: destroy_avp_list(): destroying list <span class="pl-c1">0</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/usr_avp.c:<span class="pl-c1">636</span>]: destroy_avp_list(): destroying list <span class="pl-c1">0</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/usr_avp.c:<span class="pl-c1">636</span>]: destroy_avp_list(): destroying list <span class="pl-c1">0</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/usr_avp.c:<span class="pl-c1">636</span>]: destroy_avp_list(): destroying list <span class="pl-c1">0</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/xavp.c:<span class="pl-c1">495</span>]: xavp_destroy_list(): destroying xavp list <span class="pl-c1">0</span>
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) DEBUG: {<span class="pl-c1">1</span> <span class="pl-c1">32554</span> INVITE 1k3Hcf7IVCnjmhjZIJXU5S0x-LRhyB2x} <core> [core/receive.c:<span class="pl-c1">457</span>]: receive_msg(): cleaning up
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) DEBUG: <core> [core/io_wait.h:<span class="pl-c1">777</span>]: io_watch_chg(): DBG: io_watch_chg (<span class="pl-c1">0x55d984d52f20</span>, <span class="pl-c1">29</span>, <span class="pl-c1">0x1</span>, <span class="pl-c1">0xffffffff</span>) fd_no=<span class="pl-c1">19</span> called
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) DEBUG: <core> [core/io_wait.h:<span class="pl-c1">602</span>]: io_watch_del(): DBG: io_watch_del (<span class="pl-c1">0x55d984d52f20</span>, <span class="pl-c1">29</span>, -<span class="pl-c1">1</span>, <span class="pl-c1">0x0</span>) fd_no=<span class="pl-c1">19</span> called
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) DEBUG: <core> [core/tcp_main.c:<span class="pl-c1">4196</span>]: handle_tcpconn_ev(): sending to child, events <span class="pl-c1">1</span>
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) DEBUG: <core> [core/tcp_main.c:<span class="pl-c1">3875</span>]: send2child(): selected tcp worker <span class="pl-c1">1</span> <span class="pl-c1">12</span>(<span class="pl-c1">17</span>) <span class="pl-k">for</span> activity on [tls:<span class="pl-c1">172.17.0.2</span>:<span class="pl-c1">5061</span>], <span class="pl-c1">0x7fe7742cd200</span>
<span class="pl-c1">12</span>(<span class="pl-c1">17</span>) DEBUG: <core> [core/tcp_read.c:<span class="pl-c1">1767</span>]: handle_io(): received n=<span class="pl-c1">8</span> con=<span class="pl-c1">0x7fe7742cd200</span>, fd=<span class="pl-c1">7</span>
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) DEBUG: <core> [core/tcp_main.c:<span class="pl-c1">3279</span>]: handle_tcp_child(): dead tcp child <span class="pl-c1">1</span> (pid <span class="pl-c1">17</span>, no <span class="pl-c1">12</span>) (shutting down?)
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) DEBUG: <core> [core/io_wait.h:<span class="pl-c1">602</span>]: io_watch_del(): DBG: io_watch_del (<span class="pl-c1">0x55d984d52f20</span>, <span class="pl-c1">27</span>, -<span class="pl-c1">1</span>, <span class="pl-c1">0x0</span>) fd_no=<span class="pl-c1">18</span> called
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) CRITICAL: <core> [core/pass_fd.c:<span class="pl-c1">277</span>]: receive_fd(): EOF on <span class="pl-c1">24</span>
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) DEBUG: <core> [core/tcp_main.c:<span class="pl-c1">3512</span>]: handle_ser_child(): dead child <span class="pl-c1">12</span>, pid <span class="pl-c1">17</span> (shutting down?)
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) DEBUG: <core> [core/io_wait.h:<span class="pl-c1">602</span>]: io_watch_del(): DBG: io_watch_del (<span class="pl-c1">0x55d984d52f20</span>, <span class="pl-c1">24</span>, -<span class="pl-c1">1</span>, <span class="pl-c1">0x0</span>) fd_no=<span class="pl-c1">17</span> called
<span class="pl-c1">0</span>(<span class="pl-c1">1</span>) ALERT: <core> [main.c:<span class="pl-c1">740</span>]: handle_sigs(): child process <span class="pl-c1">17</span> exited by a signal <span class="pl-c1">11</span>
<span class="pl-c1">0</span>(<span class="pl-c1">1</span>) ALERT: <core> [main.c:<span class="pl-c1">743</span>]: handle_sigs(): core was generated
<span class="pl-c1">0</span>(<span class="pl-c1">1</span>) INFO: <core> [main.c:<span class="pl-c1">766</span>]: handle_sigs(): terminating due to SIGCHLD
<span class="pl-c1">0</span>(<span class="pl-c1">1</span>) DEBUG: <core> [main.c:<span class="pl-c1">768</span>]: handle_sigs(): terminating due to SIGCHLD
<span class="pl-c1">10</span>(<span class="pl-c1">15</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">1</span>(<span class="pl-c1">6</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">8</span>(<span class="pl-c1">13</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">7</span>(<span class="pl-c1">12</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">6</span>(<span class="pl-c1">11</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">5</span>(<span class="pl-c1">10</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">4</span>(<span class="pl-c1">9</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">3</span>(<span class="pl-c1">8</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">13</span>(<span class="pl-c1">18</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">9</span>(<span class="pl-c1">14</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">11</span>(<span class="pl-c1">16</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">2</span>(<span class="pl-c1">7</span>) INFO: <core> [main.c:<span class="pl-c1">821</span>]: sig_usr(): signal <span class="pl-c1">15</span> received
<span class="pl-c1">0</span>(<span class="pl-c1">1</span>) DEBUG: <span class="pl-c1">tm</span> [t_funcs.c:<span class="pl-c1">85</span>]: tm_shutdown(): start
<span class="pl-c1">0</span>(<span class="pl-c1">1</span>) DEBUG: <span class="pl-c1">tm</span> [t_funcs.c:<span class="pl-c1">88</span>]: tm_shutdown(): emptying hash table
<span class="pl-c1">0</span>(<span class="pl-c1">1</span>) DEBUG: <span class="pl-c1">tm</span> [h_table.c:<span class="pl-c1">133</span>]: free_cell_helper(): freeing transaction <span class="pl-c1">0x7fe7742c9580</span> from h_table.c:<span class="pl-c1">465</span>
<span class="pl-c1">0</span>(<span class="pl-c1">1</span>) DEBUG: <span class="pl-c1">tm</span> [t_funcs.c:<span class="pl-c1">90</span>]: tm_shutdown(): removing semaphores
<span class="pl-c1">0</span>(<span class="pl-c1">1</span>) DEBUG: <span class="pl-c1">tm</span> [t_funcs.c:<span class="pl-c1">92</span>]: tm_shutdown(): destroying tmcb lists
<span class="pl-c1">0</span>(<span class="pl-c1">1</span>) DEBUG: <span class="pl-c1">tm</span> [t_funcs.c:<span class="pl-c1">95</span>]: tm_shutdown(): done</pre></div>
<h3>Additional Information</h3>
<ul>
<li>
<p><strong>Kamailio Version</strong> : Kamailio (OpenSER) SIP Server v5.2</p>
</li>
<li>
<p><strong>Operating System</strong>:</p>
</li>
</ul>
<p>Kamailio was running on Linux Alpine from <a href="https://hub.docker.com/r/kamailio/kamailio-ci/" rel="nofollow">kamailio/kamailio-ci:master-alpine</a> docker image.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/issues/1670">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AF36ZWDVPBi9JzhDI-JC3pPtEwKjMyQRks5uix7vgaJpZM4XMlgI">mute the thread</a>.<img src="https://github.com/notifications/beacon/AF36ZVcDiSyzn4X_h7GRvvnmMsZLmpvTks5uix7vgaJpZM4XMlgI.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/kamailio/kamailio","title":"kamailio/kamailio","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/kamailio/kamailio"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Crash using TLS with many child processes (#1670)"}],"action":{"name":"View Issue","url":"https://github.com/kamailio/kamailio/issues/1670"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/kamailio/kamailio/issues/1670",
"url": "https://github.com/kamailio/kamailio/issues/1670",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
},
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"hideOriginalBody": "false",
"originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB",
"title": "Crash using TLS with many child processes (#1670)",
"sections": [
{
"text": "",
"activityTitle": "**Adrien Menella**",
"activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png",
"activitySubtitle": "@amenella",
"facts": [
{
"name": "Repository: ",
"value": "kamailio/kamailio"
},
{
"name": "Issue #: ",
"value": 1670
}
]
}
],
"potentialAction": [
{
"name": "Add a comment",
"@type": "ActionCard",
"inputs": [
{
"isMultiLine": true,
"@type": "TextInput",
"id": "IssueComment",
"isRequired": false
}
],
"actions": [
{
"name": "Comment",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \"kamailio/kamailio\",\n\"issueId\": 1670,\n\"IssueComment\": \"{{IssueComment.value}}\"\n}"
}
]
},
{
"name": "Close issue",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueClose\",\n\"repositoryFullName\": \"kamailio/kamailio\",\n\"issueId\": 1670\n}"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/kamailio/kamailio/issues/1670"
}
],
"@type": "OpenUri",
"name": "View on GitHub"
},
{
"name": "Unsubscribe",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 389175304\n}"
}
],
"themeColor": "26292E"
}
]</script>