Edit report at https://bugs.php.net/bug.php?id=55414&edit=1
ID: 55414 User updated by: jbboehr at gmail dot com Reported by: jbboehr at gmail dot com Summary: Segmentation fault with MySQLi_Result::fetch_fields() Status: Open Type: Bug Package: MySQLi related Operating System: CentOS release 5.6 (Final) PHP Version: 5.3.6 Block user comment: N Private report: N New Comment: Ok, so gdb was not installed on the server (sigh), however here's part of the strace, maybe that will help. connect(4, {sa_family=AF_FILE, path="/var/lib/mysql/mysql.sock"...}, 110) = 0 setsockopt(4, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(4, SOL_SOCKET, SO_SNDTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(4, SOL_IP, IP_TOS, [8], 4) = -1 EOPNOTSUPP (Operation not supported) setsockopt(4, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0 read(4, ">\0\0\0\n5.0.92-community\0\350\352^\0@Dp,%u"..., 16384) = 66 stat("/usr/share/mysql/charsets/Index.xml", {st_mode=S_IFREG|0755, st_size=18173, ...}) = 0 open("/usr/share/mysql/charsets/Index.xml", O_RDONLY) = 5 read(5, "<?xml version='1.0' encoding=\"ut"..., 18173) = 18173 close(5) = 0 write(4, "Y\0\0\1\215\242\2\0\0\0\0@\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 93) = 93 read(4, "\7\0\0\2\0\0\0\2\0\0\0", 16384) = 11 poll([{fd=4, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) write(4, "\r\0\0\0\26SHOW ENGINES", 17) = 17 read(4, "\f\0\0\1\0\1\0\0\0\0\0\0\0\0\0\0", 16384) = 16 poll([{fd=4, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) write(4, "\n\0\0\0\27\1\0\0\0\0\1\0\0\0", 14) = 14 read(4, "\1\0\0\1\3\34\0\0\2\3def\0\0\0\6Engine\0\f\10\0\n\0\0\0\375"..., 16384) = 826 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Previous Comments: ------------------------------------------------------------------------ [2011-08-13 00:37:27] jbboehr at gmail dot com Description: ------------ A segmentation fault is occurring for us when the following is done: -Run SHOW ENGINES as a prepared statement -Call MySQLi_STMT::fetch_metadata() -Call MySQLi_Result::fetch_fields() on the result. This is using the Zend Framework (Zend_Db_Adapter_Mysql), however the test script below successfully replicated the segfault. We have had at least 30 people with the issue (we sell a PHP script), out of maybe a thousand or so. Unfortunately, this isn't my server, so I can't include a backtrace. Here is someone else having a similar problem with SHOW CREATE TABLE: http://stackoverflow.com/questions/6769515/php-programming-seg-fault PHP Version => 5.3.6 Configure Command => './configure' '--disable-fileinfo' '--enable-bcmath' '-- enable-calendar' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '-- enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-pdo=shared' '--enable-sockets' '--enable-zend-multibyte' '--enable-zip' '-- prefix=/usr/local' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-bz2' '-- with-curl=/opt/curlssl/' '--with-curlwrappers' '--with-freetype-dir=/usr' '-- with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap- ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64' '-- with-libexpat-dir=/usr' '--with-libxml-dir=/opt/xml2/' '--with- mcrypt=/opt/libmcrypt/' '--with-mm=/opt/mm/' '--with-mysql=/usr' '--with-mysql- sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with- openssl=/usr' '--with-openssl-dir=/usr' '--with-pcre-regex=/opt/pcre' '--with- pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-pic' '--with-png-dir=/usr' '--with-pspell' '--with-sqlite=shared' '--with-tidy=/opt/tidy/' '--with-xmlrpc' '--with-xpm-dir=/usr' '--with-xsl=/opt/xslt/' '--with-zlib' '--with-zlib- dir=/usr' mysqli MysqlI Support => enabled Client API library version => 5.0.92 Active Persistent Links => 0 Inactive Persistent Links => 0 Active Links => 0 Client API header version => 5.0.92 MYSQLI_SOCKET => /var/lib/mysql/mysql.sock Directive => Local Value => Master Value mysqli.allow_local_infile => On => On mysqli.allow_persistent => On => On mysqli.default_host => no value => no value mysqli.default_port => 3306 => 3306 mysqli.default_pw => no value => no value mysqli.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock mysqli.default_user => no value => no value mysqli.max_links => Unlimited => Unlimited mysqli.max_persistent => Unlimited => Unlimited mysqli.reconnect => Off => Off +-----------------------------------------+------------------------------------- -------------+ | Variable_name | Value | +-----------------------------------------+------------------------------------- -------------+ | version | 5.0.92-community | | version_comment | MySQL Community Edition (GPL) | +-----------------------------------------+------------------------------------- -------------+ Linux ***** 2.6.18-***** #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 x86_64 x86_64 GNU/Linux Test script: --------------- $mysqli = new mysqli($host, $username, $password, $dbname); $stmt = $mysqli->prepare('SHOW ENGINES'); $stmt->execute(); $stmt->bind_result($engine, $support, $comment); $meta = $stmt->result_metadata(); $meta->fetch_fields(); $stmt->close(); $mysqli->close(); ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=55414&edit=1