ID: 33737 Updated by: [EMAIL PROTECTED] Reported By: leon at lost dot co dot nz -Status: Open +Status: Feedback Bug Type: PDO related Operating System: Linux 2.6 / Apache2 PHP Version: PHP 5 CVS Assigned To: wez New Comment:
Could you plz try to build PHP with --enable-debug && --disable-zend-memory-manager and run the same script through valgrind: valgrind --tool=memcheck --leak-check=yes --num-callers=30 --show-reachable=yes php /path/to/script.php That should give us enough information, I hope. But some reproduce script would be really nice to have, this will definitely help to fix the bug. Thanks. Previous Comments: ------------------------------------------------------------------------ [2005-07-21 01:47:31] leon at lost dot co dot nz It's a little disheartening to put so much work into bug hunting to be given the proverbial cold shoulder of the canned response above... Anyway, to review: When built with --enable-debug PHP doesn't segfault, instead it prints the warning message I quoted before (every single time, though the part after 'ZZZZ' changes): Warning: String is not zero-terminated (ZZZZ�̏**̏*�) (source: /tmp/php5-200507192230/Zend/zend_variables.h:35) in Unknown on line 0 How can I send a useful backtrace from this? I've been trying all morning to put together a single script that would replicate the problem, but nothing but the original seem to cause the problem. What would you like me to do? ------------------------------------------------------------------------ [2005-07-20 03:03:28] [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. Need a backtrace and/or a short, self-contained reproducing test case; when you can provide either or both of these, re-open this report. Until then, your comments won't really help us to track down the problem. ------------------------------------------------------------------------ [2005-07-20 02:01:37] leon at lost dot co dot nz Just rebuilt the above build with --enable-debug to try to generate a backtrace for you. It has so far refused to segfault, but I am getting this error appearing on the end of my unit-test page: Warning: String is not zero-terminated (ZZZZ�̏**̏*�) (source: /tmp/php5-200507192230/Zend/zend_variables.h:35) in Unknown on line 0 Needless to say, I don't have any variables that look even close to that! :-) ------------------------------------------------------------------------ [2005-07-20 01:22:40] leon at lost dot co dot nz Tried again this morning with CVS snapshot php5-200507192230. Same install routine which, this time, created and install the .so file properly. My test script now works fine, and I can run the unit tests successfully. Big improvement! However... I'm still getting intermittent (like about half of the time I run the PDO::SQLite tests) segfaults reported in Apache's error log. Prehaps more worryingly, after trying to run the SQLite unit tests for a while, I have seen what looks like some of the apache2 stuck in infinite loops (three processs each using ~33% CPU -- I'm using the Apache2 prefork MPM with APXS2 to build PHP). ------------------------------------------------------------------------ [2005-07-18 23:45:06] leon at lost dot co dot nz Hmmm... I think something screwy happened with the install of the latest snapshot, making my last (good news/bad news) report suspect. I did my usual install routine (on Debian 3.1): make apache2ctl stop make install apache2ctl start Then tested the snippet using the CLI: $ php -v PHP 5.1.0-dev (cli) (built: Jul 19 2005 08:45:23 NZ) $ php test.php $ (no segfault!) The 'bad news' came when I browsed to the unit test page normally -- but on further investigation it seems that the normal install process failed on the snapshot. For some reason 'make install' put the files libphp5.[a|la] in my /usr/lib/apache2/modules, rather than the usual libphp5.so... Has the build process changed, or have I done something stupid? ;-) ./configure --with-apxs2=/usr/bin/apxs2 \ --with-config-file-dir=/etc/php --with-mcrypt --with-gd \ --with-zlib --enable-exif --with-freetype-dir \ --with-jpeg-dir --enable-debug ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/33737 -- Edit this bug report at http://bugs.php.net/?id=33737&edit=1