Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:47444 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 17342 invoked from network); 22 Mar 2010 14:51:43 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Mar 2010 14:51:43 -0000 Authentication-Results: pb1.pair.com smtp.mail=troelskn@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=troelskn@gmail.com; sender-id=pass; domainkeys=bad Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.218.216 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: troelskn@gmail.com X-Host-Fingerprint: 209.85.218.216 mail-bw0-f216.google.com Received: from [209.85.218.216] ([209.85.218.216:37587] helo=mail-bw0-f216.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B8/50-14451-FF387AB4 for ; Mon, 22 Mar 2010 09:51:43 -0500 Received: by bwz8 with SMTP id 8so223293bwz.23 for ; Mon, 22 Mar 2010 07:51:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=ar4R1BRyw4qmOUzvpGwv43/eARGpgBBKr2QRC90nfyM=; b=PiIV5zKOn7UK1gYwxB5OrjSwInafDQQ59I5ICE6v0d93qVvr/zSeG6v1cmc+CjWoKZ sCFfCnBUTfjloTkTqjGgQ5rZdv+1K6VRRw3XelmjdMlcMv6oykMhvR4lmAXTac5eQBLv WWsGNNSb3HJ+GIBwz2bh3STmf4OLVg+rzB7EM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=olTmP8ZSbtp0pbaGptaEVra7g2WBrqzC3pg/Ex5D7fK3yad7O0A8dDlJxoOed1Z3/F b7pgcAV1ckYa4ATZorZWeGIiPIUsbFou45jd94WRLiwKAfJ5PrenqACdpQHKIMPsTb2G ri4HXE9tw7/esBEpjKMywOl5e5ReQ5lvNghjY= MIME-Version: 1.0 Received: by 10.204.2.196 with SMTP id 4mr1857185bkk.121.1269269500265; Mon, 22 Mar 2010 07:51:40 -0700 (PDT) Date: Mon, 22 Mar 2010 15:51:40 +0100 Message-ID: <98b8086f1003220751j73a8414es89b9b469c46f6630@mail.gmail.com> To: PHP Developers Mailing List Content-Type: multipart/mixed; boundary=0015174c3416b005a6048264d575 Subject: [PATCH] Raise warning first on "Maximum execution time exceeded" From: troelskn@gmail.com (troels knak-nielsen) --0015174c3416b005a6048264d575 Content-Type: text/plain; charset=ISO-8859-1 Hi list. We log all errors that happens in our production environment, but as fatal errors can't be handled from within php, we end up with little information to go on for further debugging. I'm not very familiar with the php internals code, but I managed to throw in a hack that appears to work. In the handler function for timeouts (zend_timeout), I raise a WARNING, sleep for 1 second and then resume normal behavior, which results in a fatal error. This gives userland code 1 second to log the error somewhere, which should be sufficient for debugging. Would like to get feedback as to if this has any hidden problems, but otherwise I propose that it's included in the project. -- troels --0015174c3416b005a6048264d575 Content-Type: text/x-diff; charset=US-ASCII; name="zend_timeout_warning.patch" Content-Disposition: attachment; filename="zend_timeout_warning.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g73e7ti50 LS0tIC4vWmVuZC96ZW5kX2V4ZWN1dGVfQVBJLmMub3JpZwkyMDEwLTAzLTIyIDE1OjMzOjE3LjAw MDAwMDAwMCArMDEwMAorKysgLi9aZW5kL3plbmRfZXhlY3V0ZV9BUEkuYwkyMDEwLTAzLTIyIDE1 OjMzOjAxLjAwMDAwMDAwMCArMDEwMApAQCAtMTMwMiw2ICsxMzAyLDkgQEAKIAogWkVORF9BUEkg dm9pZCB6ZW5kX3RpbWVvdXQoaW50IGR1bW15KSAvKiB7e3sgKi8KIHsKKyAgICAgICAgemVuZF9l cnJvcihFX1dBUk5JTkcsICJNYXhpbXVtIGV4ZWN1dGlvbiB0aW1lIG9mICVkIHNlY29uZCVzIGV4 Y2VlZGVkLiBFeGVjdXRpb24gd2lsbCBzaHV0IGRvd24gaW4gMSBzZWNvbmQuIiwgRUcodGltZW91 dF9zZWNvbmRzKSwgRUcodGltZW91dF9zZWNvbmRzKSA9PSAxID8gIiIgOiAicyIpOworICAgICAg ICBzbGVlcCgxKTsKKwogCVRTUk1MU19GRVRDSCgpOwogCiAJaWYgKHplbmRfb25fdGltZW91dCkg ewo= --0015174c3416b005a6048264d575--