Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 3272 invoked from network); 15 Sep 2004 17:49:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 15 Sep 2004 17:49:01 -0000 Received: (qmail 48223 invoked by uid 500); 15 Sep 2004 17:48:21 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 48036 invoked by uid 500); 15 Sep 2004 17:48:19 -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: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 47958 invoked by uid 99); 15 Sep 2004 17:48:17 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: domain of trawick@gmail.com designates 64.233.170.195 as permitted sender) Received: from [64.233.170.195] (HELO mproxy.gmail.com) (64.233.170.195) by apache.org (qpsmtpd/0.28) with ESMTP; Wed, 15 Sep 2004 10:48:16 -0700 Received: by mproxy.gmail.com with SMTP id 80so376747rnl for ; Wed, 15 Sep 2004 10:48:11 -0700 (PDT) Received: by 10.38.8.74 with SMTP id 74mr3310990rnh; Wed, 15 Sep 2004 10:48:11 -0700 (PDT) Received: by 10.38.206.20 with HTTP; Wed, 15 Sep 2004 10:48:11 -0700 (PDT) Message-ID: Date: Wed, 15 Sep 2004 13:48:11 -0400 From: Jeff Trawick Reply-To: Jeff Trawick To: dev@httpd.apache.org Subject: Re: [PATCH] fix child reclaim timing In-Reply-To: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_218_10398623.1095270491336" References: <20040813135123.GA18095@redhat.com> X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N ------=_Part_218_10398623.1095270491336 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline On Fri, 13 Aug 2004 10:27:11 -0400, Jeff Trawick wrote: > Here is my take on what is wrong with current code: > > 1) It starts complaining a bit too soon. Some third-party modules > have rather complicated child exit strategies. Whether or not that is > good or bad (bad ;) ), it results in disturbing messages that wouldn't > have appeared if we were a little more patient (2-3 seconds). Also, I > suspect that the use of threaded MPM affects how quickly the children > are exiting now on Unix. > > 2) It should never stop checking for exited processes less often than > 1-2 seconds, even if it doesn't complain to error log that often. > Like you say, current code can wait a VERY long time for child > processes to exit. In practice, I see that it can wait a VERY long > time even after the last child has exited. > > I'll agree that it should never wait so long, though I think around 15 > or so seconds total is reasonable. Exiting before children are gone > doesn't let Apache start up any more quickly; it just prevents > potentially-useful information about timing from getting logged to the > error log. > > --/-- > > I wouldn't complain to error log at all until it has been 2 seconds, > and then I'd still wait around for 10-15 more. But it has to check > every second so it finds out soon after all children have exited and > doesn't sleep needlessly. > Here's a patch that does something like I mentioned above, though it bails out a bit sooner (9 or so seconds). The timing of the interesting actions in this patch can be tweaked in a much simpler manner than the old 1.3 code allows. ------=_Part_218_10398623.1095270491336 Content-Type: application/octet-stream; name="patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch" SW5kZXg6IHNlcnZlci9tcG1fY29tbW9uLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3Zz L2h0dHBkLTIuMC9zZXJ2ZXIvbXBtX2NvbW1vbi5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEy MQpkaWZmIC11IC1yMS4xMjEgbXBtX2NvbW1vbi5jCi0tLSBzZXJ2ZXIvbXBtX2NvbW1vbi5jCTE0 IEF1ZyAyMDA0IDEwOjQ5OjQzIC0wMDAwCTEuMTIxCisrKyBzZXJ2ZXIvbXBtX2NvbW1vbi5jCTE1 IFNlcCAyMDA0IDE3OjQwOjMwIC0wMDAwCkBAIC02MSwyMiArNjEsNTUgQEAKICNpZmRlZiBBUF9N UE1fV0FOVF9SRUNMQUlNX0NISUxEX1BST0NFU1NFUwogdm9pZCBhcF9yZWNsYWltX2NoaWxkX3By b2Nlc3NlcyhpbnQgdGVybWluYXRlKQogewotICAgIGludCBpOwotICAgIGxvbmcgaW50IHdhaXR0 aW1lID0gMTAyNCAqIDE2OyAgICAgIC8qIGluIHVzZWNzICovCisgICAgYXByX3RpbWVfdCB3YWl0 dGltZSA9IDEwMjQgKiAxNjsKICAgICBhcHJfc3RhdHVzX3Qgd2FpdHJldDsKLSAgICBpbnQgdHJp ZXM7CisgICAgaW50IGk7CiAgICAgaW50IG5vdF9kZWFkX3lldDsKICAgICBpbnQgbWF4X2RhZW1v bnM7CisgICAgYXByX3RpbWVfdCBzdGFydHRpbWUgPSBhcHJfdGltZV9ub3coKTsKKyAgICAvKiB0 aGlzIHRhYmxlIG9mIGFjdGlvbnMgYW5kIGVsYXBzZWQgdGltZXMgdGVsbHMgd2hhdCBhY3Rpb24g aXMgdGFrZW4KKyAgICAgKiBhdCB3aGljaCBlbGFwc2VkIHRpbWUgZnJvbSBzdGFydGluZyB0aGUg cmVjbGFpbQorICAgICAqLworICAgIHN0cnVjdCB7CisgICAgICAgIGVudW0ge0RPX05PVEhJTkcs IFNFTkRfU0lHVEVSTSwgU0VORF9TSUdLSUxMLCBHSVZFVVB9IGFjdGlvbjsKKyAgICAgICAgYXBy X3RpbWVfdCBhY3Rpb25fdGltZTsKKyAgICB9IGFjdGlvbl90YWJsZVtdID0geworICAgICAgICB7 RE9fTk9USElORywgMH0sIC8qIGR1bW15IGVudHJ5IGZvciBpdGVyYXRpb25zIHdoZXJlIHdlIHJl YXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKiBjaGlsZHJlbiBidXQgdGFrZSBubyBhY3Rp b24gYWdhaW5zdAorICAgICAgICAgICAgICAgICAgICAgICAgICAqIHN0cmFnZ2xlcnMKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAge1NFTkRfU0lHVEVSTSwgYXByX3RpbWVf ZnJvbV9zZWMoMyl9LAorICAgICAgICB7U0VORF9TSUdURVJNLCBhcHJfdGltZV9mcm9tX3NlYyg0 KX0sCisgICAgICAgIHtTRU5EX1NJR1RFUk0sIGFwcl90aW1lX2Zyb21fc2VjKDUpfSwKKyAgICAg ICAge1NFTkRfU0lHS0lMTCwgYXByX3RpbWVfZnJvbV9zZWMoNyl9LAorICAgICAgICB7R0lWRVVQ LCAgICAgICBhcHJfdGltZV9mcm9tX3NlYyg5KX0KKyAgICB9OworICAgIGludCBjdXJfYWN0aW9u OyAgICAgIC8qIGluZGV4IG9mIGFjdGlvbiB3ZSBkZWNpZGVkIHRvIHRha2UgdGhpcworICAgICAg ICAgICAgICAgICAgICAgICAgICAqIGl0ZXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAg ICAqLworICAgIGludCBuZXh0X2FjdGlvbiA9IDE7IC8qIGluZGV4IG9mIGZpcnN0IHJlYWwgYWN0 aW9uICovCiAKICAgICBhcF9tcG1fcXVlcnkoQVBfTVBNUV9NQVhfREFFTU9OX1VTRUQsICZtYXhf ZGFlbW9ucyk7CiAKLSAgICBmb3IgKHRyaWVzID0gdGVybWluYXRlID8gNCA6IDE7IHRyaWVzIDw9 IDk7ICsrdHJpZXMpIHsKLSAgICAgICAgLyogZG9uJ3Qgd2FudCB0byBob2xkIHVwIHByb2dyZXNz IGFueSBtb3JlIHRoYW4KLSAgICAgICAgICogbmVjZXNzYXJ5LCBidXQgd2UgbmVlZCB0byBhbGxv dyBjaGlsZHJlbiBhIGZldyBtb21lbnRzIHRvIGV4aXQuCi0gICAgICAgICAqIFNldCBkZWxheSB3 aXRoIGFuIGV4cG9uZW50aWFsIGJhY2tvZmYuCi0gICAgICAgICAqLworICAgIHdoaWxlICgxKSB7 CiAgICAgICAgIGFwcl9zbGVlcCh3YWl0dGltZSk7CisgICAgICAgIC8qIGRvbid0IGxldCB3YWl0 dGltZSBnZXQgbG9uZ2VyIHRoYW4gMSBzZWNvbmQ7IG90aGVyd2lzZSwgd2UgZG9uJ3QKKyAgICAg ICAgICogcmVhY3QgcXVpY2tseSB0byB0aGUgbGFzdCBjaGlsZCBleGl0aW5nLCBhbmQgdGFraW5n IGFjdGlvbiBjYW4KKyAgICAgICAgICogYmUgZGVsYXllZAorICAgICAgICAgKi8KICAgICAgICAg d2FpdHRpbWUgPSB3YWl0dGltZSAqIDQ7CisgICAgICAgIGlmICh3YWl0dGltZSA+IGFwcl90aW1l X2Zyb21fc2VjKDEpKSB7CisgICAgICAgICAgICB3YWl0dGltZSA9IGFwcl90aW1lX2Zyb21fc2Vj KDEpOworICAgICAgICB9CisKKyAgICAgICAgLyogc2VlIHdoYXQgYWN0aW9uIHRvIHRha2UsIGlm IGFueSAqLworICAgICAgICBpZiAoYWN0aW9uX3RhYmxlW25leHRfYWN0aW9uXS5hY3Rpb25fdGlt ZSA8PSBhcHJfdGltZV9ub3coKSAtIHN0YXJ0dGltZSkgeworICAgICAgICAgICAgY3VyX2FjdGlv biA9IG5leHRfYWN0aW9uOworICAgICAgICAgICAgKytuZXh0X2FjdGlvbjsKKyAgICAgICAgfQor ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGN1cl9hY3Rpb24gPSAwOyAvKiBub3RoaW5nIHRv IGRvICovCisgICAgICAgIH0KIAogICAgICAgICAvKiBub3cgc2VlIHdobyBpcyBkb25lICovCiAg ICAgICAgIG5vdF9kZWFkX3lldCA9IDA7CkBAIC05NSwxNiArMTI4LDExIEBACiAgICAgICAgICAg ICB9CiAKICAgICAgICAgICAgICsrbm90X2RlYWRfeWV0OwotICAgICAgICAgICAgc3dpdGNoICh0 cmllcykgewotICAgICAgICAgICAgY2FzZSAxOiAgICAgLyogIDE2bXMgKi8KLSAgICAgICAgICAg IGNhc2UgMjogICAgIC8qICA4Mm1zICovCi0gICAgICAgICAgICBjYXNlIDM6ICAgICAvKiAzNDRt cyAqLwotICAgICAgICAgICAgY2FzZSA0OiAgICAgLyogIDE2bXMgKi8KKyAgICAgICAgICAgIHN3 aXRjaChhY3Rpb25fdGFibGVbY3VyX2FjdGlvbl0uYWN0aW9uKSB7CisgICAgICAgICAgICBjYXNl IERPX05PVEhJTkc6CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2Ug NTogICAgIC8qICA4Mm1zICovCi0gICAgICAgICAgICBjYXNlIDY6ICAgICAvKiAzNDRtcyAqLwot ICAgICAgICAgICAgY2FzZSA3OiAgICAgLyogMS40c2VjICovCisgICAgICAgICAgICAgICAgCisg ICAgICAgICAgICBjYXNlIFNFTkRfU0lHVEVSTToKICAgICAgICAgICAgICAgICAvKiBvaywgbm93 IGl0J3MgYmVpbmcgYW5ub3lpbmcgKi8KICAgICAgICAgICAgICAgICBhcF9sb2dfZXJyb3IoQVBM T0dfTUFSSywgQVBMT0dfV0FSTklORywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwg YXBfc2VydmVyX2NvbmYsCkBAIC0xMTMsOSArMTQxLDggQEAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxvbmcpcGlkKTsKICAgICAgICAgICAgICAgICBraWxsKHBpZCwgU0lHVEVSTSk7 CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgODogICAgIC8qICA2 IHNlYyAqLwotICAgICAgICAgICAgICAgIC8qIGRpZSBjaGlsZCBzY3VtICovCisgICAgICAgICAg ICAgICAgCisgICAgICAgICAgICBjYXNlIFNFTkRfU0lHS0lMTDoKICAgICAgICAgICAgICAgICBh cF9sb2dfZXJyb3IoQVBMT0dfTUFSSywgQVBMT0dfRVJSLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAwLCBhcF9zZXJ2ZXJfY29uZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImNoaWxkIHByb2Nlc3MgJWxkIHN0aWxsIGRpZCBub3QgZXhpdCwgIgpAQCAtMTMzLDggKzE2MCw4 IEBACiAgICAgICAgICAgICAgICAga2lsbF90aHJlYWQocGlkKTsKICNlbmRpZgogICAgICAgICAg ICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIDk6ICAgICAvKiAxNCBzZWMgKi8KKyAg ICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgR0lWRVVQOgogICAgICAgICAgICAgICAg IC8qIGdhdmUgaXQgb3VyIGJlc3Qgc2hvdCwgYnV0IGFsYXMuLi4gIElmIHRoaXMgcmVhbGx5CiAg ICAgICAgICAgICAgICAgICogaXMgYSBjaGlsZCB3ZSBhcmUgdHJ5aW5nIHRvIGtpbGwgYW5kIGl0 IHJlYWxseSBoYXNuJ3QKICAgICAgICAgICAgICAgICAgKiBleGl0ZWQsIHdlIHdpbGwgbGlrZWx5 IGZhaWwgdG8gYmluZCB0byB0aGUgcG9ydApAQCAtMTUzLDggKzE4MCw5IEBACiAgICAgICAgIGFw cl9wcm9jX290aGVyX2NoaWxkX3JlZnJlc2hfYWxsKEFQUl9PQ19SRUFTT05fUkVTVEFSVCk7CiAj ZW5kaWYKIAotICAgICAgICBpZiAoIW5vdF9kZWFkX3lldCkgewotICAgICAgICAgICAgLyogbm90 aGluZyBsZWZ0IHRvIHdhaXQgZm9yICovCisgICAgICAgIGlmICghbm90X2RlYWRfeWV0IHx8Cisg ICAgICAgICAgICBhY3Rpb25fdGFibGVbY3VyX2FjdGlvbl0uYWN0aW9uID09IEdJVkVVUCkgewor ICAgICAgICAgICAgLyogbm90aGluZyBsZWZ0IHRvIHdhaXQgZm9yLCBvciB3ZSBnYXZlIHVwICov CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K ------=_Part_218_10398623.1095270491336--