]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
PHP 5.4: Fix 'mysql has gone away' error when using mysqli driver with forked daemons...
authorJean Baptiste Favre <statusnet@jbfavre.org>
Thu, 20 Jun 2013 09:07:51 +0000 (11:07 +0200)
committerJean Baptiste Favre <statusnet@jbfavre.org>
Thu, 20 Jun 2013 09:07:51 +0000 (11:07 +0200)
lib/daemon.php

index 4c2491e97bca284cb6234820b0749f4e61241517..c09531c9d572e2c714a21d862e0635311e2afdb6 100644 (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.");