From 685c014e99195d60db0a9cdbc6483f9c44fd0a67 Mon Sep 17 00:00:00 2001 From: Camilo Lopez Date: Sun, 2 Aug 2015 19:07:28 -0400 Subject: [PATCH] BUG/MEDIUM: lua: Lua tasks fail to start. I've been trying out 1.6 dev3 with lua support, and trying to start lua tasks seems to not be working. Using this configuration global lua-load /lua/lol.lua debug maxconn 4096 backend shard_b server db01 mysql_shard_b:3306 backend shard_a server db01 mysql_shard_a:3306 listen mysql-cluster bind 0.0.0.0:8001 mode tcp balance roundrobin use_backend shard_b And this lua function core.register_task(function() while true do core.Alert("LOLOLOLOLOL") end end) I'd always get a timeout error starting the registered function. The problem lies as far as I can tell in the fact that is possible for now_ms to not change (is this maybe a problem on my config/system?) until the expiration check happens, in the resume function that actually kickstarts the lua task, making HAProxy think that expiration time for the task is up, if I understand correctly tasks are meant to never really timeout. --- src/hlua.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hlua.c b/src/hlua.c index 678935165..8e9213453 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -3780,7 +3780,7 @@ static struct task *hlua_process_task(struct task *task) * execution timeouts. */ if (!HLUA_IS_RUNNING(hlua)) - hlua->expire = tick_add(now_ms, hlua_timeout_task); + hlua->expire = tick_add_ifset(now_ms, hlua_timeout_task); /* Execute the Lua code. */ status = hlua_ctx_resume(hlua, 1);