Hi Thierry, using lua file and cfg file i provided in my two first mails and lastest source, you should get segault when doing :
# curl http://127.0.0.1 -H "X-debug-me: yes" Regards, On Tue, 18 Aug 2015 12:33:40 +0200, Thierry <t...@thierry.1s.fr> wrote : > Hi, > > How can I reproduce the segfault ? > > Thierry > > On Mon, 17 Aug 2015 15:00:25 +0200 > Marc-Antoine <marc-antoine.b...@ovh.net> wrote: > > > Hi, > > > > Cyril, as you said, if removed "txn:close()" from the lua script, I don't > > get segfault anymore. > > > > I noticed that if I removed default_backend line from frontend declaration, > > segfault does not happen even with "txn:close()" in lua script : > > > > frontend fe:80 > > bind 127.0.0.1:80 > > acl debugme req.hdr_cnt(X-debug-me) ge 1 > > http-request lua mirror if debugme > > # default_backend be > > > > Regards, > > > > On Sat, 15 Aug 2015 23:56:57 +0200, > > Cyril Bonté <cyril.bo...@free.fr> wrote : > > > > > Hi Marc-Antoine, > > > > > > Le 12/08/2015 19:01, Marc-Antoine a écrit : > > > > I forgot lua file content : > > > > > > > > # cat mylua.lua > > > > -- a simple mirror web server > > > > -- it generates a response whose body contains the requests headers > > > > function mirror(txn) > > > > (...) > > > > txn:close() > > > > end > > > > > > This is the call which produce a segfault later, combined with the > > > haproxy configuration. I give more details below. > > > > > > > Marc-Antoine <marc-antoine.b...@ovh.net> wrote : > > > > (...) > > > >> defaults > > > >> mode http > > > >> (...) > > > >> frontend fe:80 > > > >> bind 127.0.0.1:80 > > > >> acl debugme req.hdr_cnt(X-debug-me) ge 1 > > > >> http-request lua mirror if debugme > > > >> default_backend be > > > > > > It looks that currently, mode http doesn't allow a call to txn:close(). > > > To extend the issue, txn:close() won't work for a proxy in HTTP mode for > > > both : > > > http-request lua > > > tcp-request content lua > > > > > > This is due to the stream processing which still execute some request > > > analyzers even if the lua code sends a response and asks to close the > > > transaction. > > > > > > I haven't looked at the code enough yet, but maybe we should try to find > > > a way to notify haproxy to stop the processing once txn:close() is called. > > > > > > This also explains some other segfaults reported in the past : > > > http://comments.gmane.org/gmane.comp.web.haproxy/21136 > > > > > > > > > -- > > Marc-Antoine > > > -- Marc-Antoine