ID: 42749 User updated by: gabe at mudbugmedia dot com Reported By: gabe at mudbugmedia dot com Status: Open Bug Type: Output Control Operating System: Linux proto 2.6.20-hardened-r5 PHP Version: 5CVS-2007-09-24 (snap) New Comment:
I don't think this is a threading problem, as I'm running Apache 2.2.6 under `prefork` mpm, and when I compiled (via gentoo USE flags -- not sure what the 'thread' use flag corresponds to in the ./configure), threads were disabled. Also, the last comment on #41561 states that threads weren't involved and that it was patched in the CVS last week, and I've been experiencing this behavior on today's CVS snap. This is my configure statement: './configure' '--prefix=/usr/lib/php5' '--host=i686-pc-linux-gnu' '-- mandir=/usr/lib/php5/man' '--infodir=/usr/lib/php5/info' '-- sysconfdir=/etc' '--cache-file=./config.cache' '--disable-cli' '-- with-apxs2=/usr/sbin/apxs2' '--with-config-file-path=/etc/php/apache2- php5' '--with-config-file-scan-dir=/etc/php/apache2-php5/ext-active' '--without-pear' '--disable-bcmath' '--with-bz2' '--disable-calendar' '--with-curl' '--without-curlwrappers' '--disable-dbase' '--disable- exif' '--without-fbsql' '--without-fdftk' '--disable-filter' '-- disable-ftp' '--with-gettext' '--without-gmp' '--disable-hash' '-- without-iconv' '--disable-ipv6' '--disable-json' '--without-kerberos' '--enable-mbstring' '--with-mcrypt' '--without-mhash' '--without-msql' '--without-mssql' '--without-ncurses' '--with-openssl' '--with- openssl-dir=/usr' '--disable-pcntl' '--disable-pdo' '--without-pgsql' '--without-pspell' '--without-recode' '--disable-reflection' '-- disable-simplexml' '--disable-shmop' '--without-snmp' '--disable-soap' '--disable-sockets' '--disable-spl' '--without-sybase' '--without- sybase-ct' '--disable-sysvmsg' '--disable-sysvsem' '--disable-sysvshm' '--without-tidy' '--disable-tokenizer' '--disable-wddx' '--disable- xmlreader' '--disable-xmlwriter' '--without-xmlrpc' '--without-xsl' '- -disable-zip' '--with-zlib' '--disable-debug' '--without-cdb' '-- without-db4' '--without-flatfile' '--without-gdbm' '--without-inifile' '--without-qdbm' '--without-freetype-dir' '--without-t1lib' '-- disable-gd-jis-conv' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '-- without-xpm-dir' '--with-gd' '--with-mysql=/usr' '--with-mysql- sock=/var/run/mysqld/mysqld.sock' '--without-mysqli' '--with-readline' '--without-libedit' '--without-mm' '--without-sqlite' '--with-pic' Previous Comments: ------------------------------------------------------------------------ [2007-09-24 20:18:06] hoffie at gentoo dot org Might be related to bug 41561 (and related commits) when building with threads (I guess this is the case here). ------------------------------------------------------------------------ [2007-09-24 20:04:39] gabe at mudbugmedia dot com Description: ------------ Periodically PHP stops respecting calls to error_reporting() to alter the current error level away from the system default specified in php.ini. All calls to error_reporting() for the current connection will not update the actual level. This behavior will occur with only *some* of the connections, but not all of them. Reloading the page (after waiting for the keep alive to time out) will sometimes result in the expected behavior, and others will result in the erroneous behavior. Restarting Apache (running 2.2.6 with mod_php) seems to briefly fix the problem, but it eventually returns. This behavior also occurs when trying to set the error reporting level via .htaccess such as: php_value "E_ALL ^ E_NOTICE" when this occurs, a phpinfo() call shows that the error reporting level has defaulted back to the system-wide default (specified in php.ini) and ignores the php_value statement all together. Again, this is behavior that only happens *sometimes* and alters between page reloads. As a side effect, this causes all supporting libraries that rely on error suppression, like Smarty, to throw errors. Reproduce code: --------------- <?php var_dump(error_reporting()); var_dump(error_reporting(E_ALL ^ E_NOTICE ^ E_USER_NOTICE)); trigger_error('This should not be seen', E_USER_NOTICE); echo $a; // should cause a notice var_dump(error_reporting()); ?> Expected result: ---------------- int(6143) int(6143) int(5111) Actual result: -------------- int(6143) int(6143) <br /> <b>Notice</b>: This should not be seen in <b>/home/gabebug/public_html/error_reporting_tests.php</b> on line <b>5</b><br /> <br /> <b>Notice</b>: Undefined variable: a in <b>/home/gabebug/public_html/error_reporting_tests.php</b> on line <b>6</b><br /> int(6143) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=42749&edit=1