Bug #67061 [Opn->Nab]: mysqli don't work with pcntl_fork

From: Date: Sat, 12 Apr 2014 23:19:08 +0000
Subject: Bug #67061 [Opn->Nab]: mysqli don't work with pcntl_fork
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-185190@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=67061&edit=1 ID: 67061 Updated by: requinix@php.net Reported by: aurelien dot lequoy at esysteme dot com Summary: mysqli don't work with pcntl_fork -Status: Open +Status: Not a bug Type: Bug Package: MySQLi related Operating System: Debian 7.4 PHP Version: 5.5.11 Block user comment: N Private report: N New Comment: You cannot use the same connection at once in both processes. Each one needs its own $db. Previous Comments: ------------------------------------------------------------------------ [2014-04-12 23:16:51] aurelien dot lequoy at esysteme dot com Description: ------------ We have to close connection MySQL before to use pcntl_wait and repoen it after to make it work. Or when the son dead and get back with father. Test script: --------------- <?php $db = new MySQLi('localhost','root','zeb33tln'); if (pcntl_fork()) { echo "pid du pere ".getmypid().PHP_EOL; $status = 0; $result = $db->query('select version()'); if ($db->error) echo "error 1".$db->error.PHP_EOL; //pcntl_wait($status); $result = $db->query('select version()'); if ($db->error) echo "error 2".$db->error.PHP_EOL; } else { echo "pid son ".getmypid().PHP_EOL; $result = $db->query('select version()'); if ($db->error) echo "error 3".$db->error.PHP_EOL; exit; } $result = $db->query('select version()'); if ($db->error) echo "error 4".$db->error.PHP_EOL; echo "END".PHP_EOL; Expected result: ---------------- pid du pere 26717 pid son 26718 END Actual result: -------------- pid du pere 26749 pid son 26750 PHP Warning: Packets out of order. Expected 1 received 5. Packet size=31 in /home/www/glial/testmysql.php on line 11 PHP Warning: mysqli::query(): MySQL server has gone away in /home/www/glial/testmysql.php on line 11 PHP Warning: mysqli::query(): Error reading result set's header in /home/www/glial/testmysql.php on line 11 error 1MySQL server has gone away error 2MySQL server has gone away error 4MySQL server has gone away END PHP Warning: Packets out of order. Expected 3 received 0. Packet size=65029 in /home/www/glial/testmysql.php on line 24 PHP Warning: mysqli::query(): MySQL server has gone away in /home/www/glial/testmysql.php on line 24 error 3MySQL server has gone away ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=67061&edit=1

« previous php.bugs (#185190) next »