Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:31432 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 40146 invoked by uid 1010); 3 Aug 2007 15:14:46 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 40121 invoked from network); 3 Aug 2007 15:14:45 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 3 Aug 2007 15:14:45 -0000 Authentication-Results: pb1.pair.com header.from=thetaphi@php.net; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=thetaphi@php.net; spf=unknown; sender-id=unknown Received-SPF: unknown (pb1.pair.com: domain php.net does not designate 80.190.230.99 as permitted sender) X-PHP-List-Original-Sender: thetaphi@php.net X-Host-Fingerprint: 80.190.230.99 www.troja.net Linux 2.5 (sometimes 2.4) (4) Received: from [80.190.230.99] ([80.190.230.99:48851] helo=mail.troja.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id DC/53-18249-D5643B64 for ; Fri, 03 Aug 2007 11:14:41 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.troja.net (Postfix) with ESMTP id F11A02E5EB; Fri, 3 Aug 2007 17:14:26 +0200 (CEST) Received: from mail.troja.net ([127.0.0.1]) by localhost (cyca.troja.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 14511-02; Fri, 3 Aug 2007 17:14:24 +0200 (CEST) Received: from VEGA (port-83-236-62-51.dynamic.qsc.de [83.236.62.51]) (using SSLv3 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.troja.net (Postfix) with ESMTP id 5AA742E490; Fri, 3 Aug 2007 17:14:24 +0200 (CEST) To: "'Uwe Schindler'" , "'Ilia Alshanetsky'" Cc: "'Antony Dovgal'" , "'PHP Internals'" References: <87E4F8AF-06DE-4FCC-AD1B-83E932A5E180@prohost.org> <000201c7d598$14f53cf0$0201a8c0@VEGA> <46B2E92A.40303@zend.com> <000001c7d5ae$1534b4f0$4cf96686@VEGA> <46B2F4D0.4070003@zend.com> <000101c7d5b6$233cf4b0$4cf96686@VEGA> <46B302AF.2060007@zend.com> <000001c7d5bb$d01eab60$4cf96686@VEGA> <46B309E5.10401@zend.com> <000401c7d5c6$71b22650$4cf96686@VEGA> <46B32A41.4000409@zend.com> <000101c7d5d2$467f1310$4cf96686@VEGA> <46B33043.2010102@zend.com> <000001c7d5d5$613b3910$4cf96686@VEGA> <000001c7d5da$99049670$0201a8c0@VEGA> <000001c7d5dd$989ad0c0$0201a8c0@VEGA> Date: Fri, 3 Aug 2007 17:14:27 +0200 Message-ID: <000301c7d5e0$fc1a96a0$0201a8c0@VEGA> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <000001c7d5dd$989ad0c0$0201a8c0@VEGA> Thread-Index: AcfV1ul3E/tsUM3fRrKI8inRby3ikAAAtyIgAADh0iAAAJ1IIA== X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3138 X-Virus-Scanned: amavisd-new at troja.net Subject: RE: [PHP-DEV] 5.2.4RC1 Released From: thetaphi@php.net ("Uwe Schindler") > > > >> This's a special case and it's really great you noticed it in RC.. > > > >> We need a workaround for this special case, as if we make all INI > > > >> directives set > > > >> using php_admin_value non-changeable, we break the @ thing. > > > >> So we either need to change the @ not to use zend_alter_ini_entry, > > > >> or make > > > >> an > > > >> exception in that function, which I believe would be a hack. > > > > > > > > Thats correct. An idea would be to make the @ operator only change > > > > EG(error_reporting) without changing the whole ini-entry by > > > > alter_ini_entry > > > > (which is a big slowdown...). > > > > > > The problem with that fix that a crash would potentially leave the > > > error blocking on, and INI clean up will not reset it. > > > > The problem with the original fix of antony was the same: The first time > > any > > thread started to modify any INI entry it was marked as "admin"-only for > > the > > whole PHP server until a restart and it stayed in that state because the > > flag was changed *before* the hash table was replicated. This is a > second > > bug. So at least the lines of antony must moved a few lines down in > > code... > > I attached a patch. This patch must be applied in all cases. A second > thing > is to remove breakage of the @ operator. Oh I forgot, this does not help, too. Because the ADMIN-only status given by antonys patch (change of ini_entry->modifiable) is not rolled back after request shutdown. For the Apache-Not-Multithreaded people a description of the problem: An Apache server administrator has 2 virtual servers: * One with the original php.ini configuration and no php_admin_values. * One with a modified value that is set by php_admin_value. The setting is overwritten on the first request of the second virtual server. This is ok, because the value is restored after the request finishes. But the problem is that Antonys patch marked the flag as "admin" only, which is not reverted at end of request. The first virtual server without the php_admin_value will also have the ini-setting marked as "ADMIN" only until end of time :( Uwe