From: Operating system: Ubuntu 9.10 PHP version: 5.2.13 Package: Class/Object related Bug Type: Bug Bug description:segfaults at method_exists()
Description: ------------ Hi, This bug has occurred on 3 separate projects all using the same in house PHP framework. All 3 changes that occurred just before the apps started sefgaulting are very different but on each occasion the segfault can be traced back to method_exists() which features in the frameworks URL parser. The method_exists() in all 3 cases was being called with valid arguments and should have returned true. In one project PHP started segfaulting when an object that has been unseralized from memcache was accessed. On another project (the one i've been fighting with all day) PHP started segfaulting when an extra class was added in to the OO extends daisy chain. (eg instead of: class a extends x {} it now reads class a extends y {} and class y extends x {} - class Y can be a blank class and it still causes the segfault..). For the project mentioned immediately above I've tried taking the url parser, and all related files out so I could run a controlled test and when run independently it works absolutely fine which makes me think method_exists is a red-herring and something else is causing method_exists to segfault. Also it's worth mentioning that the urlparser works fine and is used on many high-traffic websites. It's also called very near the top of the url parsers code and the couple of bits above are trivial and won't be related. I've never managed to figure out why method_exists segfaults and I've always had to work around the bug - finding what change was made just before it started segfaulting and simply finding a different solution. Can anyone help me in figuring out what's going on here? Or what method_exists does that could cause it segfault (ie: is PHP running out of file handles or something?) Any help would be much appreciated. -- Edit bug report at http://bugs.php.net/bug.php?id=51425&edit=1 -- Try a snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=51425&r=trysnapshot52 Try a snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=51425&r=trysnapshot53 Try a snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=51425&r=trysnapshot60 Fixed in SVN: http://bugs.php.net/fix.php?id=51425&r=fixed Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=51425&r=needdocs Fixed in release: http://bugs.php.net/fix.php?id=51425&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=51425&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=51425&r=needscript Try newer version: http://bugs.php.net/fix.php?id=51425&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=51425&r=support Expected behavior: http://bugs.php.net/fix.php?id=51425&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=51425&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=51425&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=51425&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=51425&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=51425&r=dst IIS Stability: http://bugs.php.net/fix.php?id=51425&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=51425&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=51425&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=51425&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=51425&r=mysqlcfg