Thierry -- Thanks for your help with this. I tried running with that line commented out and I still see the same behavior during my testing. Memory is still never reclaimed throughout the life of the haproxy process.
Thanks, -Phil On Wed, Apr 26, 2017 at 7:09 AM, <thierry.fourn...@arpalert.org> wrote: > It seems that the memleak doesn't appear when if remove the line which > sets the "priv" context do nil. > > So, when I comment this line: > > txn:set_priv(txnPrvState); > > The memleak disappear. Now if you want, you can apply this workaroud. > I try to understand the memleak. > > Thierry > > > On Wed, 26 Apr 2017 12:11:16 +0200 > Thierry Fournier <thierry.fourn...@arpalert.org> wrote: > > > Hi, > > > > Thanks for the bug report. I can reproduce the bug. > > I will look for a fix. > > > > Thierry > > > > > > > On 26 Apr 2017, at 05:14, Philip Seidel <philipsei...@gmail.com> > wrote: > > > > > > Possible Lua Memory Leak? > > > > > > We are running HAProxy version 1.7.2 (also tested 1.7.5) and are > loading a Lua file which makes use of 2 actions. The first action is > called on http-request and the second on http-response. In the simple test > case we put together the request action stores some data in a table and > calls txn:set_priv to save the state for the transaction. The response > action calls txn:get_priv in order to access the state that was set in the > request action. All variables are set to nil once they are no longer > needed but it seems that no matter what kind of load HAProxy is receiving > we leak a little bit of memory with each request. Eventually, response > times begin to increase to the point where health checks to HAProxy begin > to fail and the server is unresponsive. We can take the instance out of > rotation and memory still doesn't get reclaimed despite all connections to > the frontend and backend being closed. We do see garbage collections > happening but it never cleans up enough to stabi > lize the instance. The leak is easily reproducible using a local test > instance and JMeter. The test uses 10 connections with keep-alive at > around 1500 r/s. It takes only a few minutes to consume over 1.5G of > memory. Any ideas as to what might be going on here? Is there something > wrong with how we are attempting to integrate these LUA actions? I am > happy to provide additional information if anyone is willing to assist with > this. I have posted the configuration and other files on pastebin. > > > > > > Configuration - https://pastebin.com/SBtAEZ9R > > > Lua - https://pastebin.com/64Anbxm4 > > > > > > > >