[prev in list] [next in list] [prev in thread] [next in thread] 

List:       serdev
Subject:    [sr-dev] [kamailio/kamailio] crash in slow timer (#2120)
From:       lazedo <notifications () github ! com>
Date:       2019-10-31 15:36:10
Message-ID: kamailio/kamailio/issues/2120 () github ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. \
Please use this template only for bug reports.

If you have questions about using Kamailio or related to its configuration file, ask \
on sr-users mailing list:

  * http://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

If you have questions about developing extensions to Kamailio or its existing C code, \
ask on sr-dev mailing list:

  * http://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Please try to fill this template as much as possible for any issue. It helps the \
developers to troubleshoot the issue.

If there is no content to be filled in a section, the entire section can be removed.

You can delete the comments from the template sections when filling.

You can delete next line and everything above before submitting (it is a comment).
-->

### Description

on busy servers, there's a sporadic crash in slow timer.
we don't have any debugging data anymore nor a way to reliably reproduce it.
just posting here in case someone sees the same and can find a way to reliably \
reproduce it and maybe test the patch below. <!--
Explain what you did, what you expected to happen, and what actually happened.
-->

### Troubleshooting

#### Reproduction

<!--
If the issue can be reproduced, describe how it can be done.
-->


### Possible Solutions

<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a \
                pull request with a fix.
-->
 with the patch below we don't see any crashes
either `tl` or `tl->f` is null when it crashes. this is probably some race condition
```
diff --git a/src/core/timer.c b/src/core/timer.c
index 0e0dc8812..3c59db3da 100644
--- a/src/core/timer.c
+++ b/src/core/timer.c
@@ -1128,7 +1128,7 @@ void slow_timer_main()
 #endif
 				SET_RUNNING_SLOW(tl);
 				UNLOCK_SLOW_TIMER_LIST();
-					ret=tl->f(*ticks, tl, tl->data);
+					ret= (tl->f ? tl->f(*ticks, tl, tl->data) : 0);
 					/* reset the configuration group handles */
 					cfg_reset_all();
 					if (ret==0){
```
### Additional Information

  * **Kamailio Version** - output of `kamailio -v`

```
5.1 / 5.2
```

* **Operating System**:

<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, \
CentOS 7.1, ...), MacOS, xBSD, Solaris, ...; Kernel details (output of `uname -a`)
-->

```
CentOS7
```


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2120


[Attachment #5 (text/html)]

<h3>Description</h3>
<p>on busy servers, there's a sporadic crash in slow timer.<br>
we don't have any debugging data anymore nor a way to reliably reproduce it.<br>
just posting here in case someone sees the same and can find a way to reliably \
reproduce it and maybe test the patch below.</p>

<h3>Troubleshooting</h3>
<h4>Reproduction</h4>

<h3>Possible Solutions</h3>

<p>with the patch below we don't see any crashes<br>
either <code>tl</code> or <code>tl-&gt;f</code> is null when it crashes. this is \
probably some race condition</p> <pre><code>diff --git a/src/core/timer.c \
b/src/core/timer.c index 0e0dc8812..3c59db3da 100644
--- a/src/core/timer.c
+++ b/src/core/timer.c
@@ -1128,7 +1128,7 @@ void slow_timer_main()
 #endif
 				SET_RUNNING_SLOW(tl);
 				UNLOCK_SLOW_TIMER_LIST();
-					ret=tl-&gt;f(*ticks, tl, tl-&gt;data);
+					ret= (tl-&gt;f ? tl-&gt;f(*ticks, tl, tl-&gt;data) : 0);
 					/* reset the configuration group handles */
 					cfg_reset_all();
 					if (ret==0){
</code></pre>
<h3>Additional Information</h3>
<ul>
<li><strong>Kamailio Version</strong> - output of <code>kamailio -v</code></li>
</ul>
<pre><code>5.1 / 5.2
</code></pre>
<ul>
<li><strong>Operating System</strong>:</li>
</ul>

<pre><code>CentOS7
</code></pre>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<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/2120?email_source \
=notifications&amp;email_token=ABO7UZJEYT7AHSCN7J3IMPTQRL3OVA5CNFSM4JHMFEM2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HV2MIUQ">view \
it on GitHub</a>, or <a \
href="https://github.com/notifications/unsubscribe-auth/ABO7UZOHMHYEZT7QMQP3CDTQRL3OVANCNFSM4JHMFEMQ">unsubscribe</a>.<img \
src="https://github.com/notifications/beacon/ABO7UZIZ5J5RPTYK4BFC3DTQRL3OVA5CNFSM4JHMFEM2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HV2MIUQ.gif" \
height="1" width="1" alt="" /></p> <script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/kamailio/kamailio/issues/2120?email_source=notifications \
\u0026email_token=ABO7UZJEYT7AHSCN7J3IMPTQRL3OVA5CNFSM4JHMFEM2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HV2MIUQ",
 "url": "https://github.com/kamailio/kamailio/issues/2120?email_source=notifications\u \
0026email_token=ABO7UZJEYT7AHSCN7J3IMPTQRL3OVA5CNFSM4JHMFEM2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HV2MIUQ",
 "name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>


[Attachment #6 (text/plain)]

_______________________________________________
Kamailio (SER) - Development Mailing List
sr-dev@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic