mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-05-01 19:20:59 +02:00
Commit 7e1cc0fcdbcace75a957a69fc8a4d991f7b30fdb made it so we'd loop in task_schedule() if the task is currently running, so that we'd be sure that the task would not overwrite the expire field. However, task_schedule() may be called while a lock is held, and if the running task attempts to acquire that lock, it will lead to a deadlock. So instead, if the task is running, just wake it up, so that we're sure that it will reschedule itself correctly, as it should do anyway. We already do nothing if the task is in a run queue, so it is expected that tasks do that, and if they do not, then it is a bug. This should fix github issue #3350 This should be backported where 7e1cc0fcdbcace75a957a69fc8a4d991f7b30fdb has been backported, which should be up to 2.8.