Hi Thierry, I confirm it’s working well with your patch applied against 1.8.1. I also tested with my full code and it works, just like it does on 1.7.9. I can test your final patch once written if you want.
Thanks a lot for your help on that. Laurent > On 9 Dec 2017, at 21:59, Laurent Penot <[email protected]> wrote: > > Hi Thierry, > > Thanks for your quick reply, I’ll try this patch and report back. > > Laurent > > > >> On 9 Dec 2017, at 01:37, Thierry Fournier <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi Laurent, >> >> I think that I catch the bug. Could you test the attached patch ? >> Just for information, this patch is not ready to be published, but it fix >> the bug. >> >> Thanks, >> thierry >> <0001-BUGFIX.patch> >> >> >>> On 9 Dec 2017, at 00:37, Thierry Fournier <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hi Laurent, >>> >>> I reproduce the bug with version 1.81 without thread support. I will check >>> for this. >>> >>> Thierry >>> >>>> On 8 Dec 2017, at 13:05, Laurent Penot <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> Hi list, >>>> >>>> Having added lua to haproxy is really very very helpful, thanks a lot for >>>> this. I’m using it heavily. >>>> >>>> I need to open a socket to get the content of a web page from my local >>>> network, and I do that every second using a task. >>>> It’s in production use since lua is available in haproxy, and it has >>>> always worked fine (for now, production servers are using haproxy 1.7.9 >>>> and lua 5.3.4). >>>> This task is running well on haproxy 1.7.9 and lua 5.3.4 but seems to not >>>> release memory when running on haproxy 1.8.1 with lua (either 5.3.3 or >>>> 5.3.4, result is the same) >>>> It’s running on a centox 7 box, kernel 3.10. >>>> Please find below the task, cfg, and result of haproxy –vv. >>>> Do you know if I need to change something in this task to release memory >>>> with haproxy 1.8.1 ? >>>> >>>> >>>> I removed all the unnecessary code, so here is the lua task : >>>> function updateTest() >>>> >>>> local s >>>> local msg >>>> local infos >>>> >>>> while true do >>>> s = core.tcp() >>>> s:connect("[email protected] <mailto:[email protected]>:10011") >>>> s:send("GET / HTTP/1.0\r\n\r\n") >>>> >>>> msg = s:receive("*a") >>>> -- if (msg ~= nil) then >>>> -- core.Info('msg:' .. tostring(msg)) >>>> -- end >>>> msg = nil >>>> >>>> -- close conection >>>> s:close() >>>> s = nil >>>> >>>> infos = core.get_info() >>>> core.Info('PoolUsed_MB:' .. tostring(infos['PoolUsed_MB'])) >>>> infos = nil >>>> >>>> core.sleep(1) >>>> end >>>> >>>> end >>>> core.register_task(updateTest) >>>> >>>> >>>> Here is the haproxy infos: >>>> HA-Proxy version 1.8.1 2017/12/03 >>>> Copyright 2000-2017 Willy Tarreau <[email protected] >>>> <mailto:[email protected]>> >>>> >>>> Build options : >>>> TARGET = linux2628 >>>> CPU = generic >>>> CC = gcc >>>> CFLAGS = -m64 -march=x86-64 -O2 -g -fno-strict-aliasing >>>> -Wdeclaration-after-statement -fwrapv -Wno-unused-label >>>> OPTIONS = USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=yes >>>> USE_DEVICEATLAS=1 USE_SYSTEMD=1 USE_STATIC_PCRE=1 USE_PCRE_JIT=1 >>>> >>>> Default settings : >>>> maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200 >>>> >>>> Built with OpenSSL version : OpenSSL 1.0.2k 26 Jan 2017 >>>> Running on OpenSSL version : OpenSSL 1.0.2k 26 Jan 2017 >>>> OpenSSL library supports TLS extensions : yes >>>> OpenSSL library supports SNI : yes >>>> OpenSSL library supports : SSLv3 TLSv1.0 TLSv1.1 TLSv1.2 >>>> Built with Lua version : Lua 5.3.3 >>>> Built with DeviceAtlas support. >>>> Built with transparent proxy support using: IP_TRANSPARENT >>>> IPV6_TRANSPARENT IP_FREEBIND >>>> Encrypted password support via crypt(3): yes >>>> Built with PCRE version : 8.41 2017-07-05 >>>> Running on PCRE version : 8.41 2017-07-05 >>>> PCRE library supports JIT : yes >>>> Built with zlib version : 1.2.7 >>>> Running on zlib version : 1.2.7 >>>> Compression algorithms supported : identity("identity"), >>>> deflate("deflate"), raw-deflate("deflate"), gzip("gzip") >>>> Built with network namespace support. >>>> >>>> Available polling systems: >>>> epoll : pref=300, test result OK >>>> poll : pref=200, test result OK >>>> select : pref=150, test result OK >>>> Total: 3 (3 usable), will use epoll. >>>> >>>> Available filters : >>>> [SPOE] spoe >>>> [COMP] compression >>>> [TRACE] trace >>>> >>>> >>>> >>>> Here is a part of the config file (defaults, timeout, … removed): >>>> global >>>> chroot /var/run/haproxy >>>> pidfile /var/run/haproxy.pid >>>> user haproxy >>>> group haproxy >>>> master-worker >>>> lua-load /etc/haproxy/lua/test.lua >>>> >>>> >>>> best regards >>>> Laurent >>>> >>> >> >

