Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:57575 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 21441 invoked from network); 30 Jan 2012 15:29:23 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 30 Jan 2012 15:29:23 -0000 Authentication-Results: pb1.pair.com header.from=yoram.b@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=yoram.b@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 212.199.177.89 as permitted sender) X-PHP-List-Original-Sender: yoram.b@zend.com X-Host-Fingerprint: 212.199.177.89 il-mr1.zend.com Received: from [212.199.177.89] ([212.199.177.89:44906] helo=il-mr1.zend.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id AA/67-53934-157B62F4 for ; Mon, 30 Jan 2012 10:29:22 -0500 Received: from il-gw1.zend.com (unknown [10.1.1.22]) by il-mr1.zend.com (Postfix) with ESMTP id D3639607E6 for ; Mon, 30 Jan 2012 17:27:46 +0200 (IST) Received: from mandor.localnet (10.1.3.58) by il-ex2.zend.net (10.1.1.22) with Microsoft SMTP Server (TLS) id 14.1.255.0; Mon, 30 Jan 2012 17:28:39 +0200 To: PHP Internals Date: Mon, 30 Jan 2012 17:29:11 +0200 User-Agent: KMail/1.13.7 (Linux/2.6.37; KDE/4.7.2; i686; ; ) MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-ID: <201201301729.12063.yoram.b@zend.com> X-Originating-IP: [10.1.3.58] Subject: Re: One more critical problem in 5.4 From: yoram.b@zend.com (yoram bar haim) I Debugged the issue described here by lior. the problem is : in php_request_shutdown() we call sapi_send_headers() after php_output_deactivate(). at this point, in main/output.c, OG(flags) & PHP_OUTPUT_ACTIVATED is false so php_output_write_unbuffered() calls php_output_stderr() instead of sapi_module handler. the following patch solves the issue but It might be a wrong solution (because other thins are dependent on this order) so I'm not suggesting it as fix. --- main/main.c.orig 2012-01-30 17:25:44.000000000 +0200 +++ main/main.c 2012-01-30 17:09:05.000000000 +0200 @@ -1738,12 +1738,13 @@ } else { php_output_end_all(TSRMLS_C); } + sapi_send_headers(TSRMLS_C); php_output_deactivate(TSRMLS_C); } zend_end_try(); /* 4. Send the set HTTP headers (note: This must be done AFTER php_output_discard_all() / php_output_end_all() !!) */ zend_try { - sapi_send_headers(TSRMLS_C); +/* sapi_send_headers(TSRMLS_C); */ } zend_end_try(); /* 5. Reset max_execution_time (no longer executing php code after response sent) */