Hi, 

This bug should be backported from 1.5 to 1.7, and obviously in 1.8.
unfortunately, the problem is nt cleanly fixed (it is just move), so we
work on another - and definitive - fix.

Thierry

On Mon, 06 Feb 2017 17:41:15 +0000
Jesse Schulman <[email protected]> wrote:

> Any idea on if this will be going into 1.7.3 or only into 1.8?
> 
> Thanks!
> 
> On Sun, Jan 29, 2017 at 9:07 PM Jesse Schulman <[email protected]> wrote:
> 
> > That fixes the issue for me, thank you for the fast response!  Will this
> > be in 1.7.3, and is there any idea of when 1.7.3 will be released?
> >
> > Thanks!
> > Jesse
> >
> > On Fri, Jan 27, 2017 at 11:02 PM <[email protected]> wrote:
> >
> > Hi,
> >
> > thanks for the bug repport. I already encoutered with another function
> > than redirect. Can you try the join patch ?
> >
> > Thierry
> >
> >
> > On Fri, 27 Jan 2017 22:50:00 +0000
> > Jesse Schulman <[email protected]> wrote:
> >
> > > I've found what seems to be a bug when I log from within a Lua sample
> > fetch
> > > that I am using to determine a redirect URL.  It seems that whatever is
> > > logged from the lua script is written to the log file as expected, but it
> > > also is replacing the response, making the response invalid and breaking
> > > the redirection.
> > >
> > > Thanks,
> > > Jesse
> > >
> > > Here's what I'm seeing:
> > >
> > > *no logging: curl -v http://lab.mysite.com <http://lab.mysite.com>*
> > > > GET / HTTP/1.1
> > > > Host: lab.mysite.com
> > > > User-Agent: curl/7.51.0
> > > > Accept: */*
> > > >
> > > < HTTP/1.1 302 Found
> > > < Cache-Control: no-cache
> > > < Content-length: 0
> > > < Location: https://www.google.com/
> > > < Connection: close
> > > <
> > >
> > > *issue seen here with logging the string "LOG MSG" from lua script: curl
> > -v
> > > http://lab.mysite.com/log <http://lab.mysite.com/log>*
> > > > GET /log HTTP/1.1
> > > > Host: lab.mysite.com
> > > > User-Agent: curl/7.51.0
> > > > Accept: */*
> > > >
> > > LOG MSG 302 Found
> > > Cache-Control: no-cache
> > > Content-length: 0
> > > Location: https://www.google.com/log
> > > Connection: close
> > >
> > >
> > > Here are steps to reproduce and my current setup:
> > >
> > > */etc/redhat-release:*
> > > CentOS Linux release 7.2.1511 (Core)
> > >
> > > *uname -rv*
> > > 3.10.0-327.28.3.el7.x86_64 #1 SMP Thu Aug 18 19:05:49 UTC 2016
> > >
> > > *haproxy -vv:*
> > > HA-Proxy version 1.7.2 2017/01/13
> > > Copyright 2000-2017 Willy Tarreau <[email protected]>
> > >
> > > Build options :
> > >   TARGET  = linux2628
> > >   CPU     = generic
> > >   CC      = gcc
> > >   CFLAGS  = -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement
> > >   OPTIONS = USE_LINUX_TPROXY=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1
> > > USE_LUA=1 USE_PCRE=1
> > >
> > > Default settings :
> > >   maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200
> > >
> > > Encrypted password support via crypt(3): 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 OpenSSL version : OpenSSL 1.0.1e-fips 11 Feb 2013
> > > Running on OpenSSL version : OpenSSL 1.0.1e-fips 11 Feb 2013
> > > OpenSSL library supports TLS extensions : yes
> > > OpenSSL library supports SNI : yes
> > > OpenSSL library supports prefer-server-ciphers : yes
> > > Built with PCRE version : 8.32 2012-11-30
> > > Running on PCRE version : 8.32 2012-11-30
> > > PCRE library supports JIT : no (USE_PCRE_JIT not set)
> > > Built with Lua version : Lua 5.3.3
> > > Built with transparent proxy support using: IP_TRANSPARENT
> > IPV6_TRANSPARENT
> > > IP_FREEBIND
> > >
> > > 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 :
> > > [COMP] compression
> > > [TRACE] trace
> > > [SPOE] spoe
> > >
> > > *haproxy.cfg:*
> > > global
> > >    log 127.0.0.1 local2 debug
> > >    lua-load /etc/haproxy/lua/redirect.lua
> > >    chroot /var/lib/haproxy
> > >    pidfile /var/run/haproxy.pid
> > >    maxconn 256
> > >    tune.ssl.default-dh-param 1024
> > >    stats socket /var/run/haproxy.sock mode 600 level admin
> > >    stats timeout 2m #Wait up to 2 minutes for input
> > >    user haproxy
> > >    group haproxy
> > >    daemon
> > >
> > > defaults
> > >    log global
> > >    mode tcp
> > >    option tcplog
> > >    option dontlognull
> > >    timeout connect 10s
> > >    timeout client 60s
> > >    timeout server 60s
> > >    timeout tunnel 600s
> > >
> > > frontend http
> > >    bind "${BIND_IP}:80"
> > >    mode http
> > >    option httplog
> > >    option forwardfor
> > >    capture request header Host len 32
> > >    log-format %hr\ %r\ %ST\ %b/%s\ %ci:%cp\ %B\ %Tr
> > >
> > >    http-request redirect prefix "%[lua.get_redirect()]"
> > >
> > > *lua/redirect.lua:*
> > > core.register_fetches("get_redirect", function(txn)
> > >   local path = txn.sf:path()
> > >   if (path == "/log") then
> > >      core.Info("LOG MSG")
> > >   end
> > >   return "https://www.google.com";
> > >
> > > end)
> >
> >

Reply via email to