Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:31429 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 27258 invoked by uid 1010); 3 Aug 2007 14:50:16 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 27235 invoked from network); 3 Aug 2007 14:50:16 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 3 Aug 2007 14:50:16 -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:49205] helo=mail.troja.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 29/61-18249-6A043B64 for ; Fri, 03 Aug 2007 10:50:15 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.troja.net (Postfix) with ESMTP id 2039F2E5F0; Fri, 3 Aug 2007 16:50:11 +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 13341-01; Fri, 3 Aug 2007 16:50:09 +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 E36022E5DE; Fri, 3 Aug 2007 16:50:08 +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> Date: Fri, 3 Aug 2007 16:50:11 +0200 Message-ID: <000001c7d5dd$989ad0c0$0201a8c0@VEGA> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0001_01C7D5EE.5C23A0C0" X-Mailer: Microsoft Office Outlook 11 Thread-Index: AcfV1ul3E/tsUM3fRrKI8inRby3ikAAAtyIgAADh0iA= In-Reply-To: <000001c7d5da$99049670$0201a8c0@VEGA> 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") ------=_NextPart_000_0001_01C7D5EE.5C23A0C0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit > > On 3-Aug-07, at 9:51 AM, Uwe Schindler wrote: > > > > >> 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. Uwe ------=_NextPart_000_0001_01C7D5EE.5C23A0C0 Content-Type: text/plain; name="zend_ini.c.patch.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="zend_ini.c.patch.txt" Index: zend_ini.c=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /repository/ZendEngine2/zend_ini.c,v=0A= retrieving revision 1.39.2.2.2.10=0A= diff -u -r1.39.2.2.2.10 zend_ini.c=0A= --- zend_ini.c 17 Jun 2007 14:31:12 -0000 1.39.2.2.2.10=0A= +++ zend_ini.c 3 Aug 2007 14:46:30 -0000=0A= @@ -243,10 +243,6 @@=0A= return FAILURE;=0A= }=0A= =0A= - if (stage =3D=3D ZEND_INI_STAGE_ACTIVATE && modify_type =3D=3D = ZEND_INI_SYSTEM) {=0A= - ini_entry->modifiable =3D ZEND_INI_SYSTEM;=0A= - }=0A= -=0A= if (!(ini_entry->modifiable & modify_type)) {=0A= return FAILURE;=0A= }=0A= @@ -264,6 +260,10 @@=0A= zend_hash_add(EG(modified_ini_directives), name, name_length, = &ini_entry, sizeof(zend_ini_entry*), NULL);=0A= }=0A= =0A= + if (stage =3D=3D ZEND_INI_STAGE_ACTIVATE && modify_type =3D=3D = ZEND_INI_SYSTEM) {=0A= + ini_entry->modifiable =3D ZEND_INI_SYSTEM;=0A= + }=0A= +=0A= duplicate =3D estrndup(new_value, new_value_length);=0A= =0A= if (!ini_entry->on_modify=0A= ------=_NextPart_000_0001_01C7D5EE.5C23A0C0--