title: Why PHP-FPM 5.6 segfaults during mysqlnd calls?
body: <p>I have nginx 1.6, mysql 5.5, php 5.6.11 server configuration. Occasionally, PHP segfaults, always when it's been idle for a few minutes (no requests have been made). If there are requests, this segfault doesn't happen.</p>
  
  <p>I have run core dump through <code>gdb</code> utility with this result:</p>
  
  <pre><code>root@server3:/# gdb /usr/local/php-5.6.11-fpm/sbin/php-fpm /tmp/coredump-php-fpm.5867
  ....
  Reading symbols from /usr/local/php-5.6.11-fpm/sbin/php-fpm...done.
  [New LWP 5867]
  
  warning: Can't read pathname for load map: Input/output error.
  [Thread debugging using libthread_db enabled]
  Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
  
  warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fff1effe000
  Core was generated by `php-fpm: p'.
  Program terminated with signal 11, Segmentation fault.
  #0  0x00000000035417f0 in ?? ()
  (gdb) bt
  #0  0x00000000035417f0 in ?? ()
  #1  0x00000000009a9548 in php_mysqlnd_net_send_ex_pub (net=0x350e010, buffer=0x7fff1ef47e10 "\001", count=1, conn_stats=0x353ee30, error_info=0x35323b8)
      at /usr/src/php-5.6.11/ext/mysqlnd/mysqlnd_net.c:442
  #2  0x0000000000996420 in php_mysqlnd_cmd_write (_packet=0x34ca830, conn=0x3532280) at /usr/src/php-5.6.11/ext/mysqlnd/mysqlnd_wireprotocol.c:999
  #3  0x00000000009702f5 in php_mysqlnd_conn_data_simple_command_send_request_pub (conn=0x3532280, command=COM_PING, arg=0x0, arg_len=0, silent=1 '\001', 
      ignore_upsert_status=1 '\001') at /usr/src/php-5.6.11/ext/mysqlnd/mysqlnd.c:356
  #4  0x00000000009706c6 in php_mysqlnd_conn_data_simple_command_pub (conn=0x3532280, command=COM_PING, arg=0x0, arg_len=0, ok_packet=PROT_OK_PACKET, silent=1 '\001', 
      ignore_upsert_status=1 '\001') at /usr/src/php-5.6.11/ext/mysqlnd/mysqlnd.c:381
  #5  0x000000000097bb98 in php_mysqlnd_conn_data_ping_pub (conn=0x3532280) at /usr/src/php-5.6.11/ext/mysqlnd/mysqlnd.c:1728
  #6  0x000000000077c378 in pdo_mysql_check_liveness (dbh=0x3532830) at /usr/src/php-5.6.11/ext/pdo_mysql/mysql_driver.c:493
  #7  0x000000000076aa10 in zim_PDO_dbh_constructor (ht=4, return_value=0x34ccdd8, return_value_ptr=0x7f3796811b80, this_ptr=0x34f8708, return_value_used=0)
      at /usr/src/php-5.6.11/ext/pdo/pdo_dbh.c:307
  #8  0x0000000000acb14b in zend_do_fcall_common_helper_SPEC (execute_data=0x7f3796811eb8) at /usr/src/php-5.6.11/Zend/zend_vm_execute.h:558
  #9  0x0000000000acb91b in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0x7f3796811eb8) at /usr/src/php-5.6.11/Zend/zend_vm_execute.h:693
  #10 0x0000000000aca7b8 in execute_ex (execute_data=0x7f3796811eb8) at /usr/src/php-5.6.11/Zend/zend_vm_execute.h:363
  #11 0x0000000000aca840 in zend_execute (op_array=0x7f3796841d80) at /usr/src/php-5.6.11/Zend/zend_vm_execute.h:388
  #12 0x0000000000a862e6 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/src/php-5.6.11/Zend/zend.c:1341
  #13 0x00000000009ead57 in php_execute_script (primary_file=0x7fff1ef4a8d0) at /usr/src/php-5.6.11/main/main.c:2597
  #14 0x0000000000b471c9 in main (argc=1, argv=0x7fff1ef4cc38) at /usr/src/php-5.6.11/sapi/fpm/fpm/fpm_main.c:1964
  </code></pre>
  
  <p>All I see that there is some problem when calling mysqlnd function through PDO. But really nothing more. The code is running fine on older PHP versions ( &lt; 5.6 ) s I don't assume it's problem of my code, rather some problem with PHP ? </p>
  
  <p>PHP is compiled like this:</p>
  
  <pre><code>./configure --prefix=/usr/local/php-5.6.11-fpm --enable-ftp --with-gd --enable-mbstring --enable-sockets --enable-zip --with-jpeg-dir=/usr/local/jpeg-9 --with-zlib --enable-embedded-mysqli --with-pdo-mysql --with-png-dir=/usr/local/libpng --with-openssl=/usr/local/openssl --with-freetype-dir=/usr/local/freetype --with-mcrypt=/usr/local/libmcrypt --with-mhash --enable-soap --enable-bcmath --with-mysqli=mysqlnd --with-mysql --enable-fpm --enable-debug
  </code></pre>
  
  <p>I will appreciate any hint or help, thanks.</p>