> > > >> 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

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to