httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yann Ylavic <ylavic....@gmail.com>
Subject Fwd: apr_socket_opt_set always sets TCP_DEFER_ACCEPT to 1 (was @apr)
Date Wed, 30 Apr 2014 10:54:27 GMT
---------- Forwarded message ----------
From: Yann Ylavic <ylavic.dev@gmail.com>
Date: Wed, Apr 30, 2014 at 11:59 AM
Subject: Re: apr_socket_opt_set always sets TCP_DEFER_ACCEPT to 1
To: APR Developer List <dev@apr.apache.org>

On Tue, Apr 29, 2014 at 5:41 PM, Jim Jagielski <jim@jagunet.com> wrote:
>
> On Apr 22, 2014, at 9:43 AM, Brian J. France <brian@brianfrance.com> wrote:
>>
>> For some reason I completely missed that.  APR is fine, but httpd needs updated as
it is hard coded to 1:
>>
>>  rv = apr_socket_opt_set(s, APR_TCP_DEFER_ACCEPT, 1);
>>
>> Will move to the httpd list.
>
>
> Did I miss this on dev@httpd?

I seems that httpd trunk and 2.4.x use "apr_socket_opt_set(s,
APR_TCP_DEFER_ACCEPT, 30);" whereas 2.2.x uses a value of 1.

This come from PR
http://issues.apache.org/bugzilla/show_bug.cgi?id=41270, commit
http://svn.apache.org/viewvc?view=revision&revision=501364, which
since then has been forked to 2.4.x, and never merged in 2.2.x.

Linux (code and mostly comment) is quite clear on the setsockopt() value.
In master/net/ipv4/tcp.c::do_tcp_setsockopt() :
    case TCP_DEFER_ACCEPT:
    /* Translate value in seconds to number of retransmits */
    icsk->icsk_accept_queue.rskq_defer_accept =
        secs_to_retrans(val, TCP_TIMEOUT_INIT / HZ,
                        TCP_RTO_MAX / HZ);
    break;

One second is too low imo (cf. PR above).

Mime
View raw message