Hi David,

On Thu, Feb 11, 2010 at 05:52:24PM -0800, David Birdsong wrote:
> Sorry for the radio silence.  I took some time off to go skiing.

no prob.

> but then i just straced haproxy while traffic was plummetting, i
> should have done this a long time ago:
> splice(0x14, 0, 0xf, 0, 0xffffffffffffffff, 0x3) = -1 EINVAL (Invalid 
> argument)

This one was fixed 3 months ago :

        commit a9de333aa58e6cb76f08a50e8ba2c5931184068f
        Author: Willy Tarreau <w...@1wt.eu>
        Date:   Sat Nov 28 07:47:10 2009 +0100

        [BUG] stream_sock: BUF_INFINITE_FORWARD broke splice on 64-bit platforms

        Yohan Tordjman at Dstorage found that upgrading haproxy to 1.4-dev4
        caused truncated objects to be returned. An strace quickly exhibited
        the issue which was 100% reproducible :

        4297  epoll_wait(0, {}, 10, 0)          = 0
        4297  epoll_wait(0, {{EPOLLIN, {u32=7, u64=7}}}, 10, 1000) = 1
        4297  splice(0x7, 0, 0x5, 0, 0xffffffffffffffff, 0x3) = -1 EINVAL 
(Invalid argument)
        4297  shutdown(7, 1 /* send */)         = 0
        4297  close(7)                          = 0
        4297  shutdown(2, 1 /* send */)         = 0
        4297  close(2)                          = 0

> # ldd /usr/local/sbin/haproxy
>       linux-vdso.so.1 =>  (0x00007fff017ff000)
>       libc.so.6 => /lib64/libc.so.6 (0x00007ffe705dd000)
>       /lib64/ld-linux-x86-64.so.2 (0x00007ffe7094f000)
> 
> this is built from: haproxy-1.4-dev4

Ah here's the reason. it was fixed between 1.4-dev5 and 1.4-dev6.
You should definitely upgrade to 1.4-rc1, it has many such issues
fixed, including this one of course !

Regards,
Willy


Reply via email to