From: Jonathan Rose Date: Tue, 14 Oct 2014 18:49:25 +0000 (+0000) Subject: Scheduler: Fix a nasty scheduler caching bug which makes new tasks not execute X-Git-Tag: 12.7.0-rc1~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68d3aeeb12509c039747524da0dd8b314b9928ae;p=thirdparty%2Fasterisk.git Scheduler: Fix a nasty scheduler caching bug which makes new tasks not execute Tasks that were marked for pending deletion in the scheduler would be moved to the cache for later reuse, but after being recycled the deleted mark wouldn't be removed resulting in fresh tasks being deleted without reason... and immediately moved back into the cache where they could be reused again. This could cause horrendous things to happen in just about anything that used a scheduler. ASTERISK-24321 #close Reported by: Steve Pitts Review: https://reviewboard.asterisk.org/r/4071/ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@425503 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/sched.c b/main/sched.c index 2745e8425a..caeb6f8fd8 100644 --- a/main/sched.c +++ b/main/sched.c @@ -404,6 +404,7 @@ int ast_sched_add_variable(struct ast_sched_context *con, int when, ast_sched_cb tmp->resched = when; tmp->variable = variable; tmp->when = ast_tv(0, 0); + tmp->deleted = 0; if (sched_settime(&tmp->when, when)) { sched_release(con, tmp); } else {