PHP 5.4: Fix 'mysql has gone away' error when using mysqli driver with forked daemons (at least TwitterBridge)

This commit is contained in:
Jean Baptiste Favre 2013-06-20 11:07:51 +02:00
parent f1a3d5a386
commit 723f0f1929
1 changed files with 11 additions and 0 deletions

View File

@ -48,6 +48,17 @@ class Daemon
function background()
{
/* Starting PHP 5.4 (dotdeb), maybe earlier for some version/distrib
* seems MySQL connection using mysqli driver get lost when fork.
* Need to unset it so that child process recreate it.
*
* Not needed if using mysql driver (but it's deprecated starting PHP 5.5)
*
* @todo FIXME cleaner way to do it ?
*/
global $_DB_DATAOBJECT;
unset($_DB_DATAOBJECT['CONNECTIONS']);
$pid = pcntl_fork();
if ($pid < 0) { // error
common_log(LOG_ERR, "Could not fork.");