Return-Path: X-Original-To: apmail-httpd-dev-archive@www.apache.org Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5ED2218CDD for ; Tue, 6 Oct 2015 17:56:53 +0000 (UTC) Received: (qmail 58517 invoked by uid 500); 6 Oct 2015 17:56:50 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 58431 invoked by uid 500); 6 Oct 2015 17:56:49 -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 58421 invoked by uid 99); 6 Oct 2015 17:56:49 -0000 Received: from Unknown (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Oct 2015 17:56:49 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 5E3D2C0419 for ; Tue, 6 Oct 2015 17:56:49 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.653 X-Spam-Level: X-Spam-Status: No, score=0.653 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_NEUTRAL=0.652, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=comcast.net Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id nxg6to4zo_3D for ; Tue, 6 Oct 2015 17:56:40 +0000 (UTC) Received: from resqmta-ch2-12v.sys.comcast.net (resqmta-ch2-12v.sys.comcast.net [69.252.207.44]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id 6C87A20F4F for ; Tue, 6 Oct 2015 17:56:39 +0000 (UTC) Received: from resomta-ch2-19v.sys.comcast.net ([69.252.207.115]) by resqmta-ch2-12v.sys.comcast.net with comcast id Rtw81r00A2VvR6D01twYRT; Tue, 06 Oct 2015 17:56:32 +0000 Received: from [192.168.199.10] ([69.251.84.114]) by resomta-ch2-19v.sys.comcast.net with comcast id RtwX1r00F2U0RYt01twXKr; Tue, 06 Oct 2015 17:56:32 +0000 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r1706669 - in /httpd/httpd/trunk: ./ include/ modules/http/ modules/ssl/ server/ server/mpm/event/ server/mpm/motorz/ server/mpm/simple/ From: Jim Jagielski In-Reply-To: <07809A63-C0DB-44D2-86AE-1505E5F46B97@sharp.fm> Date: Tue, 6 Oct 2015 13:56:31 -0400 Content-Transfer-Encoding: quoted-printable Message-Id: <1AC4D4CB-D6D5-4517-BED3-E922526CC6E6@jaguNET.com> References: <20151004101052.A6E193A0234@svn01-us-west.apache.org> <9A9FBD0C-B503-4CDD-A833-74C69FF248EA@sharp.fm> <660C359D-89D0-4951-ACEA-879BA3F4D726@sharp.fm> <07809A63-C0DB-44D2-86AE-1505E5F46B97@sharp.fm> To: dev@httpd.apache.org X-Mailer: Apple Mail (2.2104) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20140121; t=1444154192; bh=/6eXGz318CYPd4McpnhdSMD5S5nGqBzcFTdDWbiGJJo=; h=Received:Received:Content-Type:Mime-Version:Subject:From:Date: Message-Id:To; b=v8K9bY9Ps91y4k8k0aIzLLpZrp05QvGY07V+UACKhahJPdCARkvnHLA3365+o7283 5RvaQ+jh+B53RW+zc0c5WK/SDtrty1H1TW1LIaj7PL0PiIHDyKtGD6YBxAD15vTIfP lhUgNHslBo7JYD6xE0kAug/h8B3RwRp/G/hcS2Cs2r7I5OZoZPeju+3MA5OekNdpot Hwy7C+uLXjFFQo5972kwCv/LSXPW26CnPrCjubsUSNuaVZt0zIZ6DzOGVqfn8kq4LY f3ZLeLhtdGDqDt3pEvyaJgICQbtJAofe8y9SQujQZbpwIIIG6xw/Ek+3BZ6RXYPJFJ ih40ot0dNAcfg== > On Oct 6, 2015, at 1:29 PM, Graham Leggett wrote: >=20 > On 06 Oct 2015, at 7:00 PM, Yann Ylavic wrote: >=20 >> Yet another filter which does not remove itself after the EOS, and >> destroys the EOR bucket while still using *r after. >=20 > I am wondering if the EOR bucket is a suboptimal way to clean up after = ourselves. >=20 > The MPM itself is in a position to know when the filter buffers are = all empty and it is safe to delete a request pool. I am imagining a = =E2=80=9Cshutdown set=E2=80=9D, which contains the pools which have been = marked as ready to shut down. If there is a pool in the shutdown set, = walk the outstanding filters and look for any filters whose pools are = descendants of that pool, and check if the filters are empty. If so, = apr_pool_destroy() and we=E2=80=99re done. If the =E2=80=9Cshutdown = set=E2=80=9D is empty, do nothing. >=20 > Instead of creating an EOR bucket, we call an MPM API that says =E2=80=9C= add this pool to the shutdown set=E2=80=9D, and then forget about it. >=20 > Legacy MPMs fall back to EOR behaviour, but we deprecate it. >=20 > I think the above is a far safer approach than assuming filters will = =E2=80=9Cdo the right thing=E2=80=9D. >=20 Basic idea seems sound... +1