httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Eissing <>
Subject mpm_winnt lingering close
Date Mon, 03 Apr 2017 13:07:22 GMT
Steffen started testing and immediately found sth. Yeah! He sees many

[Mon Apr 03 14:20:28.390474 2017] [http2:warn] [pid 3180:tid 2880] [client]
AH10020: h2_session(106,DONE,0): session cleanup triggered by pool cleanup. this should have
happened earlier already.

in his logs. The problem here is that mod_http2 would like to shutdown in ap_prep_lingering_close()
which is invoked by ap_lingering_close(). This is always done by mpm_event, worker and prefork

mpm_winnt has an optimization in line 814:
        ap_process_connection(c, context->sock);

        apr_socket_opt_get(context->sock, APR_SO_DISCONNECTED, &disconnected);

        if (!disconnected) {
            context->accept_socket = INVALID_SOCKET;
            if (!c->aborted) { 

So, if the connection is already gone or was aborted, it will not call
this and the "safe" shutdown is not triggered. "safe" insofar as
mod_http2 needs to shutdown the connection *before* mod_ssl does.

Question is: do we "fix" mpm_winnt or is there a better way for mod_http2 to shutdown the
connection before mod_ssl does. This would need to work in async mpms for any connection state.

View raw message