Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:43354 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 8173 invoked from network); 15 Mar 2009 21:14:25 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 Mar 2009 21:14:25 -0000 Authentication-Results: pb1.pair.com header.from=mozo@mozo.jp; sender-id=permerror Authentication-Results: pb1.pair.com smtp.mail=mozo@mozo.jp; spf=permerror; sender-id=permerror Received-SPF: error (pb1.pair.com: domain mozo.jp from 209.85.198.224 cause and error) X-PHP-List-Original-Sender: mozo@mozo.jp X-Host-Fingerprint: 209.85.198.224 rv-out-0506.google.com Received: from [209.85.198.224] ([209.85.198.224:25428] helo=rv-out-0506.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id EB/E5-06903-0BF6DB94 for ; Sun, 15 Mar 2009 16:14:25 -0500 Received: by rv-out-0506.google.com with SMTP id b25so2452307rvf.23 for ; Sun, 15 Mar 2009 14:14:22 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.72.4 with SMTP id u4mr1779749wfa.216.1237151661982; Sun, 15 Mar 2009 14:14:21 -0700 (PDT) Date: Mon, 16 Mar 2009 06:14:21 +0900 Message-ID: To: internals Mailing List Content-Type: multipart/mixed; boundary=001636ed657758838204652ed17f Subject: max_execution_time and async signal handling in apache2handler From: mozo@mozo.jp (Moriyoshi Koizumi) --001636ed657758838204652ed17f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi, I got a bug report on the Japanese PHP user's list that states free() aborts within the timer signal handler due to reentrance to the function when max_execution_time takes effect and the signal occurs within the same libc function. The reporter also states he uses apache2handler, which doesn't provide block_interruptions nor unblock_interruptions SAPI handlers in contrast to the apache1 handler. Whilst I doubt this happens quite frequently because PHP has its own memory pool and it's far more rare that the libc's allocators get called than the emalloc() and efree(), this should be addressed somehow. A proposed fix is attached but note this greatly compromises overall performance due to excessive system calls. Regards, Moriyoshi --001636ed657758838204652ed17f Content-Type: text/x-patch; charset=US-ASCII; name="php-apache2-sigblock-20090316.patch.diff" Content-Disposition: attachment; filename="php-apache2-sigblock-20090316.patch.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fsc8mqhh0 SW5kZXg6IHNhcGkvYXBhY2hlMmhhbmRsZXIvcGhwX2FwYWNoZS5oCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IC9yZXBvc2l0b3J5L3BocC1zcmMvc2FwaS9hcGFjaGUyaGFuZGxlci9waHBfYXBhY2hlLmgs dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOC4yLjEuMi40CmRpZmYgLXUgLXIxLjguMi4xLjIuNCBw aHBfYXBhY2hlLmgKLS0tIHNhcGkvYXBhY2hlMmhhbmRsZXIvcGhwX2FwYWNoZS5oCTMxIERlYyAy MDA4IDExOjE3OjQ4IC0wMDAwCTEuOC4yLjEuMi40CisrKyBzYXBpL2FwYWNoZTJoYW5kbGVyL3Bo cF9hcGFjaGUuaAkxNSBNYXIgMjAwOSAyMToxMzoyNiAtMDAwMApAQCAtNDYsNiArNDYsOCBAQAog CWludCByZXF1ZXN0X3Byb2Nlc3NlZDsKIAkvKiBmaW5hbCBjb250ZW50IHR5cGUgKi8KIAljaGFy ICpjb250ZW50X3R5cGU7CisJdm9sYXRpbGUgYXByX3VpbnQzMl90IGJsb2NrX3NpZ3NfaW5fY3M7 CisJc2lnc2V0X3Qgb2xkX3NpZ19zZXQ7CiB9IHBocF9zdHJ1Y3Q7CiAKIHZvaWQgKm1lcmdlX3Bo cF9jb25maWcoYXByX3Bvb2xfdCAqcCwgdm9pZCAqYmFzZV9jb25mLCB2b2lkICpuZXdfY29uZik7 CkluZGV4OiBzYXBpL2FwYWNoZTJoYW5kbGVyL3NhcGlfYXBhY2hlMi5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9yZXBvc2l0b3J5L3BocC1zcmMvc2FwaS9hcGFjaGUyaGFuZGxlci9zYXBpX2FwYWNo ZTIuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41Ny4yLjEwLjIuMTkKZGlmZiAtdSAtcjEuNTcu Mi4xMC4yLjE5IHNhcGlfYXBhY2hlMi5jCi0tLSBzYXBpL2FwYWNoZTJoYW5kbGVyL3NhcGlfYXBh Y2hlMi5jCTMxIERlYyAyMDA4IDExOjE3OjQ4IC0wMDAwCTEuNTcuMi4xMC4yLjE5CisrKyBzYXBp L2FwYWNoZTJoYW5kbGVyL3NhcGlfYXBhY2hlMi5jCTE1IE1hciAyMDA5IDIxOjEzOjI3IC0wMDAw CkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAidXRpbF9zY3JpcHQuaCIKICNpbmNsdWRlICJo dHRwX2NvcmUuaCIKICNpbmNsdWRlICJhcF9tcG0uaCIKKyNpbmNsdWRlICJhcHJfYXRvbWljLmgi CiAKICNpbmNsdWRlICJwaHBfYXBhY2hlLmgiCiAKQEAgLTMxNiw2ICszMTcsNDIgQEAKIAlyZXR1 cm4gU1VDQ0VTUzsKIH0KIAorc3RhdGljIHZvaWQgcGhwX2FwYWNoZTJfYmxvY2tfc2lnbmFscygp Cit7CisjaWZuZGVmIFBIUF9XSU4zMgorCXNpZ3NldF90IHNzOworCXBocF9zdHJ1Y3QgKmN0eCA9 IFNHKHNlcnZlcl9jb250ZXh0KTsKKworCWlmICghY3R4IHx8IGFwcl9hdG9taWNfY2FzMzIoJmN0 eC0+YmxvY2tfc2lnc19pbl9jcywgMSwgMCkpIHsKKwkJcmV0dXJuOworCX0KKworCXNpZ2VtcHR5 c2V0KCZzcyk7CisJc2lnYWRkc2V0KCZzcywgU0lHUFJPRik7CisJc2lnYWRkc2V0KCZzcywgU0lH QUxSTSk7CisjaWYgZGVmaW5lZChaVFMpICYmIGRlZmluZWQoUFRIUkVBRFMpCisJcHRocmVhZF9z aWdtYXNrKFNJR19CTE9DSywgJnNzLCAmY3R4LT5vbGRfc2lnX3NldCk7CisjZWxzZQorCXNpZ3By b2NtYXNrKFNJR19CTE9DSywgJnNzLCAmY3R4LT5vbGRfc2lnX3NldCk7CisjZW5kaWYKKyNlbmRp ZgorfQorCitzdGF0aWMgdm9pZCBwaHBfYXBhY2hlMl91bmJsb2NrX3NpZ25hbHMoKQoreworI2lm bmRlZiBQSFBfV0lOMzIKKwlwaHBfc3RydWN0ICpjdHggPSBTRyhzZXJ2ZXJfY29udGV4dCk7CisJ aWYgKCFjdHggfHwgIWFwcl9hdG9taWNfY2FzMzIoJmN0eC0+YmxvY2tfc2lnc19pbl9jcywgMCwg MSkpIHsKKwkJcmV0dXJuOworCX0KKyNpZiBkZWZpbmVkKFpUUykgJiYgZGVmaW5lZChQVEhSRUFE UykKKwlwdGhyZWFkX3NpZ21hc2soU0lHX1NFVE1BU0ssICZjdHgtPm9sZF9zaWdfc2V0LCBOVUxM KTsKKyNlbHNlCisJc2lncHJvY21hc2soU0lHX1NFVE1BU0ssICZjdHgtPm9sZF9zaWdfc2V0LCBO VUxMKTsKKyNlbmRpZgorI2VuZGlmCit9CisKIHN0YXRpYyBzYXBpX21vZHVsZV9zdHJ1Y3QgYXBh Y2hlMl9zYXBpX21vZHVsZSA9IHsKIAkiYXBhY2hlMmhhbmRsZXIiLAogCSJBcGFjaGUgMi4wIEhh bmRsZXIiLApAQCAtMzQ0LDcgKzM4MSwxMCBAQAogCXBocF9hcGFjaGVfc2FwaV9sb2dfbWVzc2Fn ZSwJCQkvKiBMb2cgbWVzc2FnZSAqLwogCXBocF9hcGFjaGVfc2FwaV9nZXRfcmVxdWVzdF90aW1l LAkJLyogUmVxdWVzdCBUaW1lICovCiAKLQlTVEFOREFSRF9TQVBJX01PRFVMRV9QUk9QRVJUSUVT CisJTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHBocC5pbmkgcGF0aCBvdmVycmlkZSAq LworCisJcGhwX2FwYWNoZTJfYmxvY2tfc2lnbmFscywKKwlwaHBfYXBhY2hlMl91bmJsb2NrX3Np Z25hbHMKIH07CiAKIHN0YXRpYyBhcHJfc3RhdHVzX3QgcGhwX2FwYWNoZV9zZXJ2ZXJfc2h1dGRv d24odm9pZCAqdG1wKQpAQCAtNTIzLDYgKzU2Myw4IEBACiAJCSAqLwogCQlhcHJfcG9vbF9jbGVh bnVwX3JlZ2lzdGVyKHItPnBvb2wsICh2b2lkICopJlNHKHNlcnZlcl9jb250ZXh0KSwgcGhwX3Nl cnZlcl9jb250ZXh0X2NsZWFudXAsIGFwcl9wb29sX2NsZWFudXBfbnVsbCk7CiAJCWN0eC0+ciA9 IHI7CisJCWN0eC0+YmxvY2tfc2lnc19pbl9jcyA9IDA7CisJCXNpZ2VtcHR5c2V0KCZjdHgtPm9s ZF9zaWdfc2V0KTsKIAkJY3R4ID0gTlVMTDsgLyogTWF5IGxvb2sgd2VpcmQgdG8gbnVsbCBpdCBo ZXJlLCBidXQgaXQgaXMgdG8gY2F0Y2ggdGhlIHJpZ2h0IGNhc2UgaW4gdGhlIGZpcnN0X3RyeSBs YXRlciBvbiAqLwogCX0gZWxzZSB7CiAJCXBhcmVudF9yZXEgPSBjdHgtPnI7Cg== --001636ed657758838204652ed17f--