oncurrence problem with PEAR:MDB2 + msqli driver in forked CLI environment
| From: | Toni Moreno | Date: | Thu, 04 Jul 2013 16:09:02 +0000 |
| Subject: | oncurrence problem with PEAR:MDB2 + msqli driver in forked CLI environment | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-48770@lists.php.net to get a copy of this message | ||
Hi.
I have a found a very strange and big "concurrence" problem after develop a
CLI tool which parallelizes data processing by using "pcntrl_fork", ( If
we run the same executions sequentially the result is correct)
The trouble appears when some of the child processes die while trying to
access to DB , after child dies, parent process always get status code of
1 or 255..
We can reproduce problem but error messages are not the same always ( I
attach 3 error log examples)
It seems like a previously stablished connection exists to the bd before
forking and child processes are working all over it.
Anybody can say me how can I force child processes to make their own new
connections to de BBDD ?
Lots of Thanks!!
*EXAMPLE1** ( child status =1)*
*
-----------------------------------------------------------------------------
**
*
*Parent process log*
Thu Jul 4 04:23:49 2013,691 [2820] INFO console - root SCHED: *Exited
Child PID:2823: STATUS CODE: 1*: SIGN: 0
Thu Jul 4 04:23:49 2013,691 [2820] ERROR console - SCHED:ERROR:Success
*Child process log ( process who is dying)*
Thu-04/July/2013-04:23:49::[2823] PHP ERROR [2] : mysqli_query(): Protocol
error. Server sent false length. Expected 12
Thu-04/July/2013-04:23:49::[2823] PHP ERROR on file
/usr/share/php/MDB2/Driver/mysqli.php, line 805
Thu-04/July/2013-04:23:49::[2823] PHP ERROR [2] : Packets out of order.
Expected 3 received 67. Packet size=3158064
Thu-04/July/2013-04:23:49::[2823] PHP ERROR on file
/usr/share/php/MDB2/Driver/mysqli.php, line 805
Thu-04/July/2013-04:23:49::[2823] PHP ERROR [2] : mysqli_query(): MySQL
server has gone away
Thu-04/July/2013-04:23:49::[2823] PHP ERROR on file
/usr/share/php/MDB2/Driver/mysqli.php, line 805
<die>
*EXAMPLE2 ( child status =1)*
*
-----------------------------------------------------------------------------
*
*
*
*Parent process log *
Thu Jul 4 05:50:58 2013,067 [4969] INFO console - root SCHED: *Exited
Child PID:4973: STATUS CODE: 1*: SIGN: 0
Thu Jul 4 05:50:58 2013,068 [4969] ERROR console - SCHED:ERROR:Success
*Child process log(**process who is dying)*
Thu-04/July/2013-05:50:57::[4973] PHP ERROR [2] : mysqli_query(): Premature
end of data (mysqlnd_wireprotocol.c:958)
Thu-04/July/2013-05:50:57::[4973] PHP ERROR on file
/usr/share/php/MDB2/Driver/mysqli.php, line 805
Thu-04/July/2013-05:50:57::[4973] PHP ERROR [2] : mysqli_query(): Result
set field packet 27 bytes shorter than expected
Thu-04/July/2013-05:50:57::[4973] PHP ERROR on file
/usr/share/php/MDB2/Driver/mysqli.php, line 805
<die>
*EXAMPLE3 ( child output status=255)*
*
-----------------------------------------------------------------------------
*
*Parent process log *
*
*
Thu Jul 4 06:08:41 2013,591 [5690] INFO console - root SCHED: *Exited
Child PID:5696: STATUS CODE: 255: SIGN: 0*
Thu Jul 4 06:08:41 2013,592 [5690] ERROR console - SCHED:ERROR:Success
*Child process log (**process who is dying)*
Thu-04/July/2013-06:08:41::[5696] PHP ERROR [2] : mysqli_query(): Error
reading result set's header
Thu-04/July/2013-06:08:41::[5696] PHP ERROR on file
/usr/share/php/MDB2/Driver/mysqli.php, line 805
Thu-04/July/2013-06:08:41::[5696] PHP ERROR [2] : mysqli_num_rows() expects
parameter 1 to be mysqli_result, boolean given
Thu-04/July/2013-06:08:41::[5696] PHP ERROR on file
/usr/share/php/MDB2/Driver/mysqli.php, line 1646
Thu-04/July/2013-06:08:41::[5696] PEAR ERROR: MDB2 Error: insufficient data
supplied
Thu-04/July/2013-06:08:41::[5696] PHP ERROR [2] : mysqli_fetch_assoc()
expects parameter 1 to be mysqli_result, boolean given
Thu-04/July/2013-06:08:41::[5696] PHP ERROR on file
/usr/share/php/MDB2/Driver/mysqli.php, line 1414
Thu-04/July/2013-06:08:41::[5696] PEAR ERROR: MDB2 Error: insufficient data
supplied
Thu-04/July/2013-06:08:41::[5696] PHP ERROR [2] : array_keys() expects
parameter 1 to be array, object given
Thu-04/July/2013-06:08:41::[5696] PHP ERROR on file
/usr/share/php/DB/DataObject.php, line 569
Thu-04/July/2013-06:08:41::[5696] PHP ERROR [2] : array_flip() expects
parameter 1 to be array, null given
Thu-04/July/2013-06:08:41::[5696] PHP ERROR on file
/usr/share/php/DB/DataObject.php, line 569
<die>
--
Att
Toni Moreno
699706656
*Si no quieres perderte en el olvido tan pronto como estés muerto y
corrompido, *
*escribe cosas dignas de leerse, o haz cosas dignas de escribirse.*
*Benjamin Franklin*