[asterisk-bugs] [JIRA] (ASTERISK-24768) Leaks timer (pipe)
Matthias Urlichs (JIRA)
noreply at issues.asterisk.org
Sun Feb 8 11:07:34 CST 2015
[ https://issues.asterisk.org/jira/browse/ASTERISK-24768?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias Urlichs updated ASTERISK-24768:
----------------------------------------
Description:
Pthread timers are never deallocated. This causes a file descriptor leak.
The locking in this patch probably needs review; the ao2_unlink() call does not. :-P
diff --git a/res/res_timing_pthread.c b/res/res_timing_pthread.c
index 81efbf8..d88e5f7 100644
--- a/res/res_timing_pthread.c
+++ b/res/res_timing_pthread.c
@@ -153,6 +153,12 @@ static void pthread_timer_close(void *data)
{
struct pthread_timer *timer = data;
+ ao2_lock(pthread_timers);
+ ast_mutex_lock(&timing_thread.lock);
+ ao2_unlink(pthread_timers, timer);
+ ast_mutex_unlock(&timing_thread.lock);
+ ao2_unlock(pthread_timers);
+
ao2_ref(timer, -1);
}
was:
Pthread timers are never deallocated.
The locking in this patch probably needs review; the ao2_unlink() call does not.
diff --git a/res/res_timing_pthread.c b/res/res_timing_pthread.c
index 81efbf8..d88e5f7 100644
--- a/res/res_timing_pthread.c
+++ b/res/res_timing_pthread.c
@@ -153,6 +153,12 @@ static void pthread_timer_close(void *data)
{
struct pthread_timer *timer = data;
+ ao2_lock(pthread_timers);
+ ast_mutex_lock(&timing_thread.lock);
+ ao2_unlink(pthread_timers, timer);
+ ast_mutex_unlock(&timing_thread.lock);
+ ao2_unlock(pthread_timers);
+
ao2_ref(timer, -1);
}
> Leaks timer (pipe)
> ------------------
>
> Key: ASTERISK-24768
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-24768
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Resources/res_timing_pthread
> Affects Versions: 13.2.0
> Environment: Current Debian (jessie/testing), i386, up-to-date
> Reporter: Matthias Urlichs
>
> Pthread timers are never deallocated. This causes a file descriptor leak.
> The locking in this patch probably needs review; the ao2_unlink() call does not. :-P
> diff --git a/res/res_timing_pthread.c b/res/res_timing_pthread.c
> index 81efbf8..d88e5f7 100644
> --- a/res/res_timing_pthread.c
> +++ b/res/res_timing_pthread.c
> @@ -153,6 +153,12 @@ static void pthread_timer_close(void *data)
> {
> struct pthread_timer *timer = data;
>
> + ao2_lock(pthread_timers);
> + ast_mutex_lock(&timing_thread.lock);
> + ao2_unlink(pthread_timers, timer);
> + ast_mutex_unlock(&timing_thread.lock);
> + ao2_unlock(pthread_timers);
> +
> ao2_ref(timer, -1);
> }
>
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list