httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Eissing <stefan.eiss...@greenbytes.de>
Subject Re: svn commit: r1727071 - in /httpd/httpd/trunk: CHANGES include/http_connection.h server/connection.c server/mpm/event/event.c
Date Fri, 29 Jan 2016 13:16:22 GMT

> Am 29.01.2016 um 13:55 schrieb Ruediger Pluem <rpluem@apache.org>:
> 
> 
> 
> On 01/27/2016 04:38 PM, Ruediger Pluem wrote:
>> 
>> 
>> On 01/27/2016 03:51 PM, icing@apache.org wrote:
>>> Author: icing
>>> Date: Wed Jan 27 14:51:53 2016
>>> New Revision: 1727071
>>> 
>>> URL: http://svn.apache.org/viewvc?rev=1727071&view=rev
>>> Log:
>>> new hook pre_close_connection
>>> 
>>> Modified:
>>>    httpd/httpd/trunk/CHANGES
>>>    httpd/httpd/trunk/include/http_connection.h
>>>    httpd/httpd/trunk/server/connection.c
>>>    httpd/httpd/trunk/server/mpm/event/event.c
>>> 
>> 
>> 
>>> Modified: httpd/httpd/trunk/server/connection.c
>>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/connection.c?rev=1727071&r1=1727070&r2=1727071&view=diff
>>> ==============================================================================
>>> --- httpd/httpd/trunk/server/connection.c (original)
>>> +++ httpd/httpd/trunk/server/connection.c Wed Jan 27 14:51:53 2016
>> 
>>> @@ -92,6 +95,17 @@ AP_CORE_DECLARE(void) ap_flush_conn(conn
>>>     (void)ap_shutdown_conn(c, 1);
>>> }
>>> 
>>> +AP_DECLARE(int) ap_prep_lingering_close(conn_rec *c)
>>> +{
>>> +    /* Give protocol handlers one last chance to raise their voice */
>>> +    ap_run_pre_close_connection(c);
>>> +    
>>> +    if (c->sbh) {
>>> +        ap_update_child_status(c->sbh, SERVER_CLOSING, NULL);
>>> +    }
>>> +    return 0;
>>> +}
>>> +
>>> /* we now proceed to read from the client until we get EOF, or until
>>>  * MAX_SECS_TO_LINGER has passed.  The reasons for doing this are
>>>  * documented in a draft:
>>> @@ -112,10 +126,10 @@ AP_DECLARE(int) ap_start_lingering_close
>>>         return 1;
>>>     }
>>> 
>>> -    if (c->sbh) {
>>> -        ap_update_child_status(c->sbh, SERVER_CLOSING, NULL);
>>> +    if (!ap_prep_lingering_close(c)) {
>> 
>> This is always true. So effectively we disable the code below.
>> 
>>> +        return 1;
>>>     }
>>> -
>>> +    
>>>     /* Close the connection, being careful to send out whatever is still
>>>      * in our buffers.  If possible, try to avoid a hard close until the
>>>      * client has ACKed our FIN and/or has stopped sending us data.
>>> 
> 
> And in effect this now causes the following failures in the test suite:
> 
> t/apache/chunkinput.t             (Wstat: 13 Tests: 22 Failed: 0)
>  Non-zero wait status: 13
>  Parse errors: Bad plan.  You planned 37 tests but ran 22.
> t/apache/pr35292.t                (Wstat: 0 Tests: 3 Failed: 1)
>  Failed test:  2
> t/ssl/headers.t                   (Wstat: 0 Tests: 3 Failed: 3)
>  Failed tests:  1-3

Fixed in r1727573. Did not see the chunkinput failures, but the other ones on OS X. 

-Stefan
Mime
View raw message