From:
Operating system: Linux
PHP version: 5.3.6
Package: Unknown/Other Function
Bug Type: Bug
Bug description:assert.active is not being reset upon request shutdown
Description:
------------
The assert related functions are saving their state in a global structure.
The
problem is that the assert state is not being reset in the RSHUTDOWN
function
and thus the assert state of the last request will be used for the next
request.
Example: If assert is active by default (php.ini assert.active) and you set
it
to false via assert_options this works fine. However on the next request
the
default will be that assert is not active.
The fix is to add
ASSERTG(active)=INI_INT("assert.active");
to asserts RSHUTDOWN function.
I am using the FastCGI SAPI.
Test script:
---------------
var_dump(assert_options(ASSERT_ACTIVE));
assert(false);
var_dump(assert_options(ASSERT_ACTIVE,1));
assert(false);
var_dump(assert_options(ASSERT_ACTIVE,0));
assert(false);
Expected result:
----------------
int(1)
Warning: assert() [function.assert]: Assertion failed in xxx.php on line 3
int(1)
Warning: assert() [function.assert]: Assertion failed in xxx.php on line 5
int(1)
Actual result:
--------------
First request:
int(1)
Warning: assert() [function.assert]: Assertion failed in xxx.php on line 3
int(1)
Warning: assert() [function.assert]: Assertion failed in xxx.php on line 5
int(1)
Second request (make sure you hit the same pid):
int(0) int(0)
Warning: assert() [function.assert]: Assertion failed in xxx.php on line 5
int(1)
--
Edit bug report at http://bugs.php.net/bug.php?id=54924&edit=1
--
Try a snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=54924&r=trysnapshot52
Try a snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=54924&r=trysnapshot53
Try a snapshot (trunk):
http://bugs.php.net/fix.php?id=54924&r=trysnapshottrunk
Fixed in SVN:
http://bugs.php.net/fix.php?id=54924&r=fixed
Fixed in SVN and need be documented:
http://bugs.php.net/fix.php?id=54924&r=needdocs
Fixed in release:
http://bugs.php.net/fix.php?id=54924&r=alreadyfixed
Need backtrace:
http://bugs.php.net/fix.php?id=54924&r=needtrace
Need Reproduce Script:
http://bugs.php.net/fix.php?id=54924&r=needscript
Try newer version:
http://bugs.php.net/fix.php?id=54924&r=oldversion
Not developer issue:
http://bugs.php.net/fix.php?id=54924&r=support
Expected behavior:
http://bugs.php.net/fix.php?id=54924&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=54924&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=54924&r=submittedtwice
register_globals:
http://bugs.php.net/fix.php?id=54924&r=globals
PHP 4 support discontinued: http://bugs.php.net/fix.php?id=54924&r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=54924&r=dst
IIS Stability:
http://bugs.php.net/fix.php?id=54924&r=isapi
Install GNU Sed:
http://bugs.php.net/fix.php?id=54924&r=gnused
Floating point limitations:
http://bugs.php.net/fix.php?id=54924&r=float
No Zend Extensions:
http://bugs.php.net/fix.php?id=54924&r=nozend
MySQL Configuration Error:
http://bugs.php.net/fix.php?id=54924&r=mysqlcfg