]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR, BUG/MINOR: lua: Put tasks to sleep when waiting for data
authorPiBa-NL <PiBa.NL.dev@gmail.com>
Wed, 2 May 2018 20:27:14 +0000 (22:27 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 3 May 2018 03:00:25 +0000 (05:00 +0200)
If a lua socket is waiting for data it currently spins at 100% cpu usage.
This because the TICK_ETERNITY returned by the socket is ignored when
setting the 'expire' time of the task.

Fixed by removing the check for yields that return TICK_ETERNITY.

This should be backported to at least 1.8.

src/hlua.c

index 32199c9640f72ea625e56f59e90556f9df411b1e..4c56409cb4f17be0060257d71026559ddf505cc4 100644 (file)
@@ -5552,8 +5552,7 @@ static struct task *hlua_process_task(struct task *task)
 
        case HLUA_E_AGAIN: /* co process or timeout wake me later. */
                notification_gc(&hlua->com);
-               if (hlua->wake_time != TICK_ETERNITY)
-                       task->expire = hlua->wake_time;
+               task->expire = hlua->wake_time;
                break;
 
        /* finished with error. */