Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 290B6200C3C for ; Mon, 3 Apr 2017 15:07:30 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 27826160B8F; Mon, 3 Apr 2017 13:07:30 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 702DF160B76 for ; Mon, 3 Apr 2017 15:07:29 +0200 (CEST) Received: (qmail 39164 invoked by uid 500); 3 Apr 2017 13:07:28 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 39154 invoked by uid 99); 3 Apr 2017 13:07:28 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Apr 2017 13:07:28 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 24D171A7AE6 for ; Mon, 3 Apr 2017 13:07:28 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.102 X-Spam-Level: X-Spam-Status: No, score=-0.102 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=greenbytes.de header.b=Uad9E+Nz; dkim=pass (1024-bit key) header.d=greenbytes.de header.b=Uad9E+Nz Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id FsvYJ2e4IsOU for ; Mon, 3 Apr 2017 13:07:24 +0000 (UTC) Received: from mail.greenbytes.de (mail.greenbytes.de [5.10.171.186]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 487395F1A0 for ; Mon, 3 Apr 2017 13:07:24 +0000 (UTC) Received: by mail.greenbytes.de (Postfix, from userid 117) id D9EBB15A2F02; Mon, 3 Apr 2017 15:07:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=greenbytes.de; s=mail; t=1491224842; bh=VIxJPfBSoooOJOS+koUrzoXx0gSCfF8WAq/8OwcL/lg=; h=From:Subject:Date:To:From; b=Uad9E+NzZt5FychifSG3wDabV/3J23VbM4mGhk4GP9HUpii5YtESizTIkz37C+1+y hxf73D968fiaGpcKfl0Tye69KXHshkZBXf4+IOBPwmBFmzlq05UaC+01AVrz3yk0zI L3N+4trRhbuqplmVU0jN42YPEz+GZlXnbCn+gNe8= Received: from delight.greenbytes.local (unknown [192.168.1.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail.greenbytes.de (Postfix) with ESMTPSA id AB23D15A009D for ; Mon, 3 Apr 2017 15:07:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=greenbytes.de; s=mail; t=1491224842; bh=VIxJPfBSoooOJOS+koUrzoXx0gSCfF8WAq/8OwcL/lg=; h=From:Subject:Date:To:From; b=Uad9E+NzZt5FychifSG3wDabV/3J23VbM4mGhk4GP9HUpii5YtESizTIkz37C+1+y hxf73D968fiaGpcKfl0Tye69KXHshkZBXf4+IOBPwmBFmzlq05UaC+01AVrz3yk0zI L3N+4trRhbuqplmVU0jN42YPEz+GZlXnbCn+gNe8= From: Stefan Eissing Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: mpm_winnt lingering close Message-Id: Date: Mon, 3 Apr 2017 15:07:22 +0200 To: dev@httpd.apache.org X-Mailer: Apple Mail (2.3273) archived-at: Mon, 03 Apr 2017 13:07:30 -0000 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 5.80.147.209:61342] 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 AFAIK. 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 =3D INVALID_SOCKET; if (!c->aborted) {=20 ap_lingering_close(c); } } 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. -Stefan=