#32981 [NoF->Opn]: ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault

2005-07-12 Thread phpbug at swift-web dot com
 ID:   32981
 User updated by:  phpbug at swift-web dot com
 Reported By:  phpbug at swift-web dot com
-Status:   No Feedback
+Status:   Open
 Bug Type: Reproducible crash
 Operating System: Gentoo 2.6.11
 PHP Version:  5.0CVS (2005-05-09)
 New Comment:

Sorry for the long delay in getting back to this.  Tried using just a
plain php install as suggested (./configure --enable-debug
--with-apxs2=/usr/sbin/apxs2) and I was still getting the seg fault
error consistently on two different test boxes.

I tried looking at my code again and came up with an idea.

if a class has the static variables defined within the class but
outside the methods eg:

class test {
  private static $test = true;
  public function test_method() {
// do whatever and access the
// static property as: self::$test
  }
}

then no seg faults occur when I dump this classes details with my
"dump" class which uses ReflectionMethod::getStaticVariables().

If however the above class is done this way instead (with the static
value only used in the method not in entire class):
class test {
  public function test_method() {
static $test = true;
// do whatever and access the
// static property just as $test
  }
}

Then using my debug dump class to display information about the class
causes a seg fault.  I haven't given you my debug/dump class, maybe
this is what you need to reproduce the seg fault crash.  I'll include
the class below.

To use the dump class I simply call it statically

debug::dump($new = new test(),'test class',true,true);
*(replace test() with the name of the class you want information about
obviously but my test about used the name test)

here is the class

// start of php code



class debug{
/**
* dump out variables to easy to read html tables
* variable can be array, string, boolean, object or hash mixture
*
* @param  mix   $data variable to be dumped
* str   $labeloptional top label for table
* boo   $show_docs   true = show documentation for an 
object
item
*false (default) = do not show docs 
for
an object item
* boo   $public_only true (default) = when 
displaying objects
only 
*   show public items
*false 
= show everything about the object
* 
* returns html output
*/
final public static function
dump($data,$label='',$show_docs=false,$public_only=true) {
// make sure public_only & show_docs is just true or 
false
$public_only = ($public_only != false) ? true : false;
$show_docs = ($show_docs != false) ? true : false;
// setup styles for html output
$style['key']   = 'font-family: sans-serif; text-align: 
right;
font-size: 12px; font-weight: bold; background-color: #000; color:
#f0f0f0;';
$style['value'] = 'font-family: sans-serif; font-size: 
11px; color:
#009; background-color: #eee'; // monospace
$style['type']  = 'font-family: sans-serif; text-align: 
center;
font-size: 12px; background-color: #9cc; color: #600;';//#F6F6F6
$output = ''.($label != '' ?
$label : 'variable dump - no variable name passed').''.gettype($data).'';

return($output.ss_debug::dump_html_table($data,$style,$show_docs,$public_only).'');
}

/**
* used privately by dump method
*/  
final private static function
dump_html_table($data,&$style,$show_docs,$public_only) {
if (!is_array($data)) {
if ($data === NULL) {
return('--NULL--');
}
switch (gettype($data)) {
case 'string':
//if ($data === NULL) {
//return('--NULL--');
//}
return ( isset ( $data ) && 
!empty ( $data ) ) ?
''.htmlentities($data)."" : ' ';
break; // string
case 'boolean':

#32981 [Fbk->Opn]: ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault

2005-05-12 Thread phpbug at swift-web dot com
 ID:   32981
 User updated by:  phpbug at swift-web dot com
 Reported By:  phpbug at swift-web dot com
-Status:   Feedback
+Status:   Open
 Bug Type: Reproducible crash
 Operating System: Gentoo 2.6.11
 PHP Version:  5.0CVS (2005-05-09)
 New Comment:

Tried today's CVS snapshot and it still gives a seg fault error.  I
think I discovered problem with the debugging.  I just noticed when I
compile with --enable-debug I get warning messages in error_log saying
that my modules were not compiled with the debug flag set and they must
be.

I tried with --disable-debug so I didn't get those warnings and apache
starts cleanly (no warning messages).  Still get seg fault error.  I'll
compile the 13 extension modules I need to set the debug flag on for
again as well (opensll, mhash, zlib, gettext, tidy, exif, fam, ncurses,
mbstring, mcrypt, sysvmsg, sysvsem, sysvshm).  I won't have time to do
this for a few days though.

I configured php with:
--prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man
--infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
--localstatedir=/var/lib --with-jpeg-dir=/usr --with-freetype-dir=/usr
--with-t1lib=/usr --with-ttf=/usr --enable-gd-jis-conf
--enable-gd-native-ttf --with-png-dir=/usr --with-tiff-dir=/usr
--without-xpm-dir --with-gd --with-mysql
--with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mm
--without-msession --enable-sqlite-utf8 --with-apxs2=/usr/sbin/apxs2
--with-config-file-path=/etc/php/apache2-php5 --without-pear
--disable-bcmath --without-bz2 --disable-calendar --without-cpdflib
--disable-ctype --without-curl --without-curlwrappers --disable-dbase
--disable-dio --enable-exif=shared --with-fam=shared --without-fbsql
--without-fdftk --disable-filepro --disable-ftp --with-gettext=shared
--without-gmp --without-hwapi --without-iconv --without-informix
--without-ingres --without-interbase --without-kerberos
--enable-mbstring=shared --with-mcrypt=shared --without-mcve
--disable-memory-limit --with-mhash=shared --without-mime-magic
--without-ming --without-mnogosearch --without-msql --without-mssql
--with-ncurses=shared --without-oci8 --without-oracle
--with-openssl=shared --with-openssl-dir=/usr --without-ovrimos
--disable-pcntl --without-pfpro --without-pgsql --disable-posix
--without-pspell --without-recode --disable-simplexml --enable-shmop
--without-snmp --disable-soap --disable-sockets --without-sybase
--without-sybase-ct --enable-sysvmsg=shared --enable-sysvsem=shared
--enable-sysvshm=shared --with-tidy=shared --disable-tokenizer
--disable-wddx --without-xsl --without-xmlrpc --disable-yp
--with-zlib=shared --disable-debug --disable-dba --with-readline
--without-libedit

I have apache-2.0.54-r3 compiled with mpm-prefork and ssl flags set.

Here is a complete cut 'n paste of the script I run to display class
information along with comments on how I can make it work (*note you'll
also see a comment out where isDestructor() always returns true as
well)

---start of code---


Test for php Reflection bug


Test for php Reflection bug

';





// classes defined below
class debug {
final public static function jason($jason = true) {
static $mark = false;
if ($jason !== false) {
$mark = $jason;
} else {
return($mark);
}
}

final public static function
dump($data,$label='',$public_only=true,$show_docs=false) {
// make sure public_only & show_docs is just true or 
false
$public_only = ($public_only != false) ? true : false;
$show_docs = ($show_docs != false) ? true : false;
// setup styles for html output
$style['key']   = 'font-family: sans-serif; text-align: 
right;
font-size: 12px; font-weight: bold; background-color: #000; color:
#f0f0f0;';
$style['value'] = 'font-family: sans-serif; font-size: 
11px; color:
#009; background-color: #eee'; // monospace
$style['type']  = 'font-family: sans-serif; text-align: 
center;
font-size: 12px; background-color: #9cc; color: #600;';//#F6F6F6
$output = ''.($label != '' ?
$label : 'variable dump - no variable name passed').''.gettype($data).'';

return($output.debug::dump_html_table($data,$style,$public_only,$show_docs).'');
}

final private static function
dump_html_table($data,&$style,$public_only,$show_docs) {
if (!is_array($data)) {
switch (gettype($data)) {
 

#32981 [Fbk->Opn]: ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault

2005-05-10 Thread phpbug at swift-web dot com
 ID:   32981
 User updated by:  phpbug at swift-web dot com
 Reported By:  phpbug at swift-web dot com
-Status:   Feedback
+Status:   Open
 Bug Type: Reproducible crash
 Operating System: Gentoo 2.6.11
 PHP Version:  5.0CVS (2005-05-09)
 New Comment:

I couldn't make sense of the backtrace either.  phpinfo() confirms I
have --enable-debug flag set.

I have no Zend extensions loaded.

I don't have apache compiled with --enable-debug.  Is that part of the
problem?


Previous Comments:


[2005-05-10 14:40:14] [EMAIL PROTECTED]

That backtrace is useless to us. You really didn't configure with
--enable-debug. 

Are you using any Zend extensions (any extension loaded with
zend_extension in php.ini) ?




[2005-05-10 04:55:33] phpbug at swift-web dot com

The script I run that crashes is a class I called ss_debug and it has a
dump method that will use the Reflection methods to output into a easy
to read table information about a class.

I remembered the ss_debug class has methods with static values so I set
it to report/parse itself and it ran, but only if I did it at the end of
a script that ran normally (If I tried dumping the output at the
beginning of a script or just an empty script like entered as an
example earlier, it crashed).

This confused me why it ran at the end and not at the beginning.  I
tried adding a new method to this class that simple was:

function jason() {
  static $me = true;
}

now it crashed all the time (whether I ran it on it's own or after a
page that normally worked).

Pulled a few hairs out and then it dawned on me to override the default
setting in that class before I dumped it and now it works.

So what I have narrowed it down to consistently is if I have static
variables that are still in their default setting of boolean true or
false then it causes a seg fault.  If I override the default setting
before dumping (running the reflection class/methods) then it works. 
Did I explain this clear enough?



[2005-05-10 04:01:09] phpbug at swift-web dot com

Couldn't get a core file (even though compiled with --enable-debug) so
I ran httpd -X under gdb
cut 'n paste bt results here:

#0  0xb7cca595 in memcpy () from /lib/libc.so.6
#1  0xb7a90f71 in zif_vprintf () from
/usr/lib/apache2/modules/libphp5.so
#2  0x0822ee7b in ?? ()
#3  0x in ?? ()
#4  0x0005 in ?? ()
#5  0xb7b2411e in zend_make_printable_zval () from
/usr/lib/apache2/modules/libphp5.so
#6  0xbffed060 in ?? ()
#7  0xb7b99b20 in php_tiff_bytes_per_format () from
/usr/lib/apache2/modules/libphp5.so
#8  0x0103 in ?? ()
#9  0xb7b0ea04 in _emalloc () from /usr/lib/apache2/modules/libphp5.so
#10 0xbffec64c in ?? ()
#11 0xbffec648 in ?? ()
#12 0x0052 in ?? ()
#13 0xb7a903c0 in zif_vprintf () from
/usr/lib/apache2/modules/libphp5.so
#14 0xbffec644 in ?? ()
#15 0xbffec648 in ?? ()
#16 0xbffec64c in ?? ()
#17 0x in ?? ()
#18 0x in ?? ()
#19 0x in ?? ()
#20 0x0020 in ?? ()
#21 0x0001 in ?? ()
#22 0x0004 in ?? ()
#23 0x in ?? ()
#24 0x in ?? ()
#25 0x in ?? ()
#26 0x in ?? ()
#27 0x in ?? ()
#28 0x in ?? ()
#29 0x in ?? ()
#30 0x in ?? ()
#31 0x in ?? ()
#32 0x2000 in ?? ()
#33 0x081e9cbc in ?? ()
#34 0x in ?? ()
#35 0x0007 in ?? ()
#36 0x in ?? ()
#37 0x in ?? ()
#38 0x0001 in ?? ()
#39 0x0007 in ?? ()
#40 0x in ?? ()
#41 0x08220dc4 in ?? ()
#42 0x08220324 in ?? ()
#43 0x0822ed04 in ?? ()
#44 0x0177 in ?? ()
#45 0x01e0 in ?? ()
#46 0x0001 in ?? ()
#47 0x in ?? ()
(line 47 repeats the same until 450)
#451 0xbffecca8 in ?? ()
#452 0x081f2d64 in ?? ()
#453 0x in ?? ()
(line 453 repeats the same until 596)
#597 0x7300 in ?? ()
#598 0xb7d572a0 in ?? () from /lib/libc.so.6
#599 0x in ?? ()
#600 0x in ?? ()
#601 0x in ?? ()
#602 0x in ?? ()
#603 0x in ?? ()
#604 0x081ff8cc in ?? ()
#605 0x in ?? ()
#606 0x0005 in ?? ()
#607 0x1999 in ?? ()
#608 0x in ?? ()
#609 0xb7d6eff4 in ?? () from /lib/libc.so.6
#610 0x081ff8cc in ?? ()
#611 0x0006 in ?? ()
#612 0xbffecf48 in ?? ()
#613 0xb7c8fefa in __strtol_internal () from /lib/libc.so.6
#614 0x0004 in ?? ()



[2005-05-10 00:52:01] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php

Once you have generated a backtrace, please submit it to this bug
report and change the status

#32981 [Opn]: ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault

2005-05-09 Thread phpbug at swift-web dot com
 ID:   32981
 User updated by:  phpbug at swift-web dot com
 Reported By:  phpbug at swift-web dot com
 Status:   Open
 Bug Type: Reproducible crash
 Operating System: Gentoo 2.6.11
 PHP Version:  5.0.5-dev
 New Comment:

The script I run that crashes is a class I called ss_debug and it has a
dump method that will use the Reflection methods to output into a easy
to read table information about a class.

I remembered the ss_debug class has methods with static values so I set
it to report/parse itself and it ran, but only if I did it at the end of
a script that ran normally (If I tried dumping the output at the
beginning of a script or just an empty script like entered as an
example earlier, it crashed).

This confused me why it ran at the end and not at the beginning.  I
tried adding a new method to this class that simple was:

function jason() {
  static $me = true;
}

now it crashed all the time (whether I ran it on it's own or after a
page that normally worked).

Pulled a few hairs out and then it dawned on me to override the default
setting in that class before I dumped it and now it works.

So what I have narrowed it down to consistently is if I have static
variables that are still in their default setting of boolean true or
false then it causes a seg fault.  If I override the default setting
before dumping (running the reflection class/methods) then it works. 
Did I explain this clear enough?


Previous Comments:


[2005-05-10 04:01:09] phpbug at swift-web dot com

Couldn't get a core file (even though compiled with --enable-debug) so
I ran httpd -X under gdb
cut 'n paste bt results here:

#0  0xb7cca595 in memcpy () from /lib/libc.so.6
#1  0xb7a90f71 in zif_vprintf () from
/usr/lib/apache2/modules/libphp5.so
#2  0x0822ee7b in ?? ()
#3  0x in ?? ()
#4  0x0005 in ?? ()
#5  0xb7b2411e in zend_make_printable_zval () from
/usr/lib/apache2/modules/libphp5.so
#6  0xbffed060 in ?? ()
#7  0xb7b99b20 in php_tiff_bytes_per_format () from
/usr/lib/apache2/modules/libphp5.so
#8  0x0103 in ?? ()
#9  0xb7b0ea04 in _emalloc () from /usr/lib/apache2/modules/libphp5.so
#10 0xbffec64c in ?? ()
#11 0xbffec648 in ?? ()
#12 0x0052 in ?? ()
#13 0xb7a903c0 in zif_vprintf () from
/usr/lib/apache2/modules/libphp5.so
#14 0xbffec644 in ?? ()
#15 0xbffec648 in ?? ()
#16 0xbffec64c in ?? ()
#17 0x in ?? ()
#18 0x in ?? ()
#19 0x in ?? ()
#20 0x0020 in ?? ()
#21 0x0001 in ?? ()
#22 0x0004 in ?? ()
#23 0x in ?? ()
#24 0x in ?? ()
#25 0x in ?? ()
#26 0x in ?? ()
#27 0x in ?? ()
#28 0x in ?? ()
#29 0x in ?? ()
#30 0x in ?? ()
#31 0x in ?? ()
#32 0x2000 in ?? ()
#33 0x081e9cbc in ?? ()
#34 0x in ?? ()
#35 0x0007 in ?? ()
#36 0x in ?? ()
#37 0x in ?? ()
#38 0x0001 in ?? ()
#39 0x0007 in ?? ()
#40 0x in ?? ()
#41 0x08220dc4 in ?? ()
#42 0x08220324 in ?? ()
#43 0x0822ed04 in ?? ()
#44 0x0177 in ?? ()
#45 0x01e0 in ?? ()
#46 0x0001 in ?? ()
#47 0x in ?? ()
(line 47 repeats the same until 450)
#451 0xbffecca8 in ?? ()
#452 0x081f2d64 in ?? ()
#453 0x in ?? ()
(line 453 repeats the same until 596)
#597 0x7300 in ?? ()
#598 0xb7d572a0 in ?? () from /lib/libc.so.6
#599 0x in ?? ()
#600 0x in ?? ()
#601 0x in ?? ()
#602 0x in ?? ()
#603 0x in ?? ()
#604 0x081ff8cc in ?? ()
#605 0x in ?? ()
#606 0x0005 in ?? ()
#607 0x1999 in ?? ()
#608 0x in ?? ()
#609 0xb7d6eff4 in ?? () from /lib/libc.so.6
#610 0x081ff8cc in ?? ()
#611 0x0006 in ?? ()
#612 0xbffecf48 in ?? ()
#613 0xb7c8fefa in __strtol_internal () from /lib/libc.so.6
#614 0x0004 in ?? ()



[2005-05-10 00:52:01] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php

Once you have generated a backtrace, please submit it to this bug
report and change the status back to "Open". Thank you for helping
us make PHP better.

I can't reproduce it - neither with 5_0-dev nor 5.1-dev 

----

[2005-05-09 22:19:07] phpbug at swift-web dot com

Tried with the latest stable 5.0 (from the link you sent) and the page
still crashes with seg fault error.

The version reported in phpinfo is 5.0.5-dev from that install.



[2005-05-09 11:36:40] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php

#32981 [Fbk->Opn]: ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault

2005-05-09 Thread phpbug at swift-web dot com
 ID:   32981
 User updated by:  phpbug at swift-web dot com
 Reported By:  phpbug at swift-web dot com
-Status:   Feedback
+Status:   Open
 Bug Type: Reproducible crash
 Operating System: Gentoo 2.6.11
 PHP Version:  5.0.5-dev
 New Comment:

Couldn't get a core file (even though compiled with --enable-debug) so
I ran httpd -X under gdb
cut 'n paste bt results here:

#0  0xb7cca595 in memcpy () from /lib/libc.so.6
#1  0xb7a90f71 in zif_vprintf () from
/usr/lib/apache2/modules/libphp5.so
#2  0x0822ee7b in ?? ()
#3  0x in ?? ()
#4  0x0005 in ?? ()
#5  0xb7b2411e in zend_make_printable_zval () from
/usr/lib/apache2/modules/libphp5.so
#6  0xbffed060 in ?? ()
#7  0xb7b99b20 in php_tiff_bytes_per_format () from
/usr/lib/apache2/modules/libphp5.so
#8  0x0103 in ?? ()
#9  0xb7b0ea04 in _emalloc () from /usr/lib/apache2/modules/libphp5.so
#10 0xbffec64c in ?? ()
#11 0xbffec648 in ?? ()
#12 0x0052 in ?? ()
#13 0xb7a903c0 in zif_vprintf () from
/usr/lib/apache2/modules/libphp5.so
#14 0xbffec644 in ?? ()
#15 0xbffec648 in ?? ()
#16 0xbffec64c in ?? ()
#17 0x in ?? ()
#18 0x in ?? ()
#19 0x in ?? ()
#20 0x0020 in ?? ()
#21 0x0001 in ?? ()
#22 0x0004 in ?? ()
#23 0x in ?? ()
#24 0x in ?? ()
#25 0x in ?? ()
#26 0x in ?? ()
#27 0x in ?? ()
#28 0x in ?? ()
#29 0x in ?? ()
#30 0x in ?? ()
#31 0x in ?? ()
#32 0x2000 in ?? ()
#33 0x081e9cbc in ?? ()
#34 0x in ?? ()
#35 0x0007 in ?? ()
#36 0x in ?? ()
#37 0x in ?? ()
#38 0x0001 in ?? ()
#39 0x0007 in ?? ()
#40 0x in ?? ()
#41 0x08220dc4 in ?? ()
#42 0x08220324 in ?? ()
#43 0x0822ed04 in ?? ()
#44 0x0177 in ?? ()
#45 0x01e0 in ?? ()
#46 0x0001 in ?? ()
#47 0x in ?? ()
(line 47 repeats the same until 450)
#451 0xbffecca8 in ?? ()
#452 0x081f2d64 in ?? ()
#453 0x in ?? ()
(line 453 repeats the same until 596)
#597 0x7300 in ?? ()
#598 0xb7d572a0 in ?? () from /lib/libc.so.6
#599 0x in ?? ()
#600 0x in ?? ()
#601 0x in ?? ()
#602 0x in ?? ()
#603 0x in ?? ()
#604 0x081ff8cc in ?? ()
#605 0x in ?? ()
#606 0x0005 in ?? ()
#607 0x1999 in ?? ()
#608 0x in ?? ()
#609 0xb7d6eff4 in ?? () from /lib/libc.so.6
#610 0x081ff8cc in ?? ()
#611 0x0006 in ?? ()
#612 0xbffecf48 in ?? ()
#613 0xb7c8fefa in __strtol_internal () from /lib/libc.so.6
#614 0x0004 in ?? ()


Previous Comments:


[2005-05-10 00:52:01] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php

Once you have generated a backtrace, please submit it to this bug
report and change the status back to "Open". Thank you for helping
us make PHP better.

I can't reproduce it - neither with 5_0-dev nor 5.1-dev 

----

[2005-05-09 22:19:07] phpbug at swift-web dot com

Tried with the latest stable 5.0 (from the link you sent) and the page
still crashes with seg fault error.

The version reported in phpinfo is 5.0.5-dev from that install.



[2005-05-09 11:36:40] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.0-win32-latest.zip

Seems to work fine fore me with latest CVS HEAD (5.1-dev) but do try
and see if it's fixed in the 5.0 too.


----

[2005-05-09 10:15:43] phpbug at swift-web dot com

Description:

Discovered if I am using ReflectionMethod::getStaticVariables() on a
method that has a static variable that is set to boolean true or false
then php crashes (Apache 2 exists with following error)

[notice] child pid 28346 exit signal Segmentation fault (11)

I tried with php version 5.0.3 initially but upgraded to 5.0.4 and
problem still exists.






Reproduce code:
---
class demo_class {
  static function myDemo($toggle) {
static $enabled = true;
// do whatever
  }
}

$class = new ReflectionClass('demo_class');
foreach ($class->getMethods() as $method) {
  $arr_static_vars[] = $method->getStaticVariables();
}
echo "done"; 
// (normally would output $arr_static_var but just put above
//  line for simplicity in this example)

Expected result:

See a screen with just the word 'done' on it



Actual result:
--
Page loading stops immediately (and keeps last page shown displayed. 
Apache logs show:


[notice] child pid 2834

#32981 [Fbk->Opn]: ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault

2005-05-09 Thread phpbug at swift-web dot com
 ID:   32981
 User updated by:  phpbug at swift-web dot com
 Reported By:  phpbug at swift-web dot com
-Status:   Feedback
+Status:   Open
 Bug Type: Reproducible crash
 Operating System: Gentoo 2.6.11
-PHP Version:  5.0.4
+PHP Version:  5.0.5-dev
 New Comment:

Tried with the latest stable 5.0 (from the link you sent) and the page
still crashes with seg fault error.

The version reported in phpinfo is 5.0.5-dev from that install.


Previous Comments:


[2005-05-09 11:36:40] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.0-win32-latest.zip

Seems to work fine fore me with latest CVS HEAD (5.1-dev) but do try
and see if it's fixed in the 5.0 too.




[2005-05-09 10:15:43] phpbug at swift-web dot com

Description:

Discovered if I am using ReflectionMethod::getStaticVariables() on a
method that has a static variable that is set to boolean true or false
then php crashes (Apache 2 exists with following error)

[notice] child pid 28346 exit signal Segmentation fault (11)

I tried with php version 5.0.3 initially but upgraded to 5.0.4 and
problem still exists.






Reproduce code:
---
class demo_class {
  static function myDemo($toggle) {
static $enabled = true;
// do whatever
  }
}

$class = new ReflectionClass('demo_class');
foreach ($class->getMethods() as $method) {
  $arr_static_vars[] = $method->getStaticVariables();
}
echo "done"; 
// (normally would output $arr_static_var but just put above
//  line for simplicity in this example)

Expected result:

See a screen with just the word 'done' on it



Actual result:
--
Page loading stops immediately (and keeps last page shown displayed. 
Apache logs show:


[notice] child pid 28346 exit signal Segmentation fault (11)
(pid of course varies)

If I change the third line in my sample code to:
  static $enabled = 1;

(or string) the page does not crash and things display properly

I haven't tested this to see if it also crashes showing static
variables for the entire class (as opposed to the one in the method)
but if they inherit the same code I guess it would also crash but again
I haven't confirmed that.





-- 
Edit this bug report at http://bugs.php.net/?id=32981&edit=1


#32981 [NEW]: ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault

2005-05-09 Thread phpbug at swift-web dot com
From: phpbug at swift-web dot com
Operating system: Gentoo 2.6.11
PHP version:  5.0.4
PHP Bug Type: Reproducible crash
Bug description:  ReflectionMethod::getStaticVariables() causes apache2.0.54 
seg fault

Description:

Discovered if I am using ReflectionMethod::getStaticVariables() on a
method that has a static variable that is set to boolean true or false
then php crashes (Apache 2 exists with following error)

[notice] child pid 28346 exit signal Segmentation fault (11)

I tried with php version 5.0.3 initially but upgraded to 5.0.4 and problem
still exists.






Reproduce code:
---
class demo_class {
  static function myDemo($toggle) {
static $enabled = true;
// do whatever
  }
}

$class = new ReflectionClass('demo_class');
foreach ($class->getMethods() as $method) {
  $arr_static_vars[] = $method->getStaticVariables();
}
echo "done"; 
// (normally would output $arr_static_var but just put above
//  line for simplicity in this example)

Expected result:

See a screen with just the word 'done' on it



Actual result:
--
Page loading stops immediately (and keeps last page shown displayed. 
Apache logs show:


[notice] child pid 28346 exit signal Segmentation fault (11)
(pid of course varies)

If I change the third line in my sample code to:
  static $enabled = 1;

(or string) the page does not crash and things display properly

I haven't tested this to see if it also crashes showing static variables
for the entire class (as opposed to the one in the method) but if they
inherit the same code I guess it would also crash but again I haven't
confirmed that.

-- 
Edit bug report at http://bugs.php.net/?id=32981&edit=1
-- 
Try a CVS snapshot (php4):   http://bugs.php.net/fix.php?id=32981&r=trysnapshot4
Try a CVS snapshot (php5.0): 
http://bugs.php.net/fix.php?id=32981&r=trysnapshot50
Try a CVS snapshot (php5.1): 
http://bugs.php.net/fix.php?id=32981&r=trysnapshot51
Fixed in CVS:http://bugs.php.net/fix.php?id=32981&r=fixedcvs
Fixed in release:http://bugs.php.net/fix.php?id=32981&r=alreadyfixed
Need backtrace:  http://bugs.php.net/fix.php?id=32981&r=needtrace
Need Reproduce Script:   http://bugs.php.net/fix.php?id=32981&r=needscript
Try newer version:   http://bugs.php.net/fix.php?id=32981&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=32981&r=support
Expected behavior:   http://bugs.php.net/fix.php?id=32981&r=notwrong
Not enough info: 
http://bugs.php.net/fix.php?id=32981&r=notenoughinfo
Submitted twice: 
http://bugs.php.net/fix.php?id=32981&r=submittedtwice
register_globals:http://bugs.php.net/fix.php?id=32981&r=globals
PHP 3 support discontinued:  http://bugs.php.net/fix.php?id=32981&r=php3
Daylight Savings:http://bugs.php.net/fix.php?id=32981&r=dst
IIS Stability:   http://bugs.php.net/fix.php?id=32981&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=32981&r=gnused
Floating point limitations:  http://bugs.php.net/fix.php?id=32981&r=float
No Zend Extensions:  http://bugs.php.net/fix.php?id=32981&r=nozend
MySQL Configuration Error:   http://bugs.php.net/fix.php?id=32981&r=mysqlcfg