Ticket #111 (closed defect)
xcache 1.2.0 and 1.2.1 break php 4.4.7 is_a() call
| Reported by: | kamikaze | Owned by: | moo |
|---|---|---|---|
| Priority: | major | Milestone: | 1.2.2 |
| Component: | cacher | Version: | 1.2.1 |
| Keywords: | php is_a segfault php4_is_broked | Cc: | nleippe@… |
| Blocked By: | PHP Version: | 4.4.7 | |
| Application: | xcache | Need User Feedback: | no |
| Other Exts: | SAPI: | Irrelevant | |
| Probability: | Always | Blocking: |
Description (last modified by moo) (diff)
create a file is_a.php with contents:
# cat > is_a2.php <<EOF
<?php
class A {};
class B extends A {};
class C extends B {};
$b =& new B;
$c =& new C;
echo is_a($c, 'B');
EOF
# php -v
PHP 4.4.7-pl0-gentoo (cli) (built: May 24 2007 10:39:17)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
with XCache v1.2.1, Copyright (c) 2005-2007, by mOo
# php is_a.php
Segmentation fault
# php -n is_a.php
1
With xcache, it always works, with xcache enabled, it usually breaks.
Sometimes after moving the file it works the first or second time before
breaking. Sometimes not.
/etc/php/cli-php4/ext/xcache.ini:
zend_extension=/usr/lib64/php4/lib/php/extensions/no-debug-non-zts-20020429/xcache.so auto_globals_jit="0" xcache.cacher="1" xcache.size="10M" xcache.count="2" xcache.slots="8k" xcache.var_size="0" xcache.var_count="1" xcache.readonly_protection="0" xcache.mmap_path="/dev/zero" xcache.stat="1" xcache.optimizer="0" xcache.coverager="0" xcache.coveragedump_directory=""
Regardless of how xcache is disabled, it then works.
Xcache breaks with php used via any of fast cgi, cli, or sapi with apache2.
This breaks on both amd64 and x86.
Both xcache versions 1.2.0 and 1.2.1 are affected.
All of these combinations break:
amd64/glibc 2.5/gcc 4.1.1
amd64/glibc 2.5/gcc 4.1.2
x86/glibc 2.5/gcc 4.1.2
Attachments
Change History
Note: See
TracTickets for help on using
tickets.


