Edit report at https://bugs.php.net/bug.php?id=59423&edit=1
ID: 59423 Comment by: phpnet at krogon dot net Reported by: jhalickman at etsy dot com Summary: GearmanWorker::wait and GearmanWorker::work are spamming the log with warnings. Status: Closed Type: Bug Package: gearman Operating System: CentOS PHP Version: 5.2.9 Assigned To: hradtke Block user comment: N Private report: N New Comment: Hello, is there any new release date with changes from svn? Previous Comments: ------------------------------------------------------------------------ [2011-09-27 10:38:31] hrad...@php.net I need to make a change to the configuration and then cut a release. I will make it happen sometime this week. ------------------------------------------------------------------------ [2011-09-27 00:38:50] eric at linkup dot com The code in SVN is working great for us. Any chance a 0.8.1 release that would include it? ------------------------------------------------------------------------ [2011-08-16 10:37:31] hrad...@php.net This bug has been fixed in SVN. In case this was a documentation problem, the fix will show up at the end of next Sunday (CET) on pecl.php.net. In case this was a pecl.php.net website problem, the change will show up on the website in short time. Thank you for the report, and for helping us make PECL better. ------------------------------------------------------------------------ [2011-08-15 13:45:51] andy at andy-burton dot co dot uk The GearmanWorker::work(): gearman_con_wait:timeout error is thrown up for me when any of the worker servers added are taken offline. The PHP worker process then crashes. The effect of this for me is that when a single worker server goes offline the entire set of gearman worker processes timeout and exit, taking the whole thing down. Is there a fix for this? I'm using ubuntu, php 5.3, gearman-0.8.0 under pecl (latest release) ------------------------------------------------------------------------ [2011-08-09 21:31:52] jameswfraser at gmail dot com In gearman-0.8.0, the work function has a second if block, which checks the response and returns false without the logging, but the wait function does not. I have modified jhalickman's patch to correct this. --- gearman-0.8.0/php_gearman.c 2011-05-17 22:51:44.000000000 +0930 +++ gearman-0.8.0-fixed/php_gearman.c 2011-08-10 10:36:38.163397253 +0930 @@ -3303,12 +3303,17 @@ obj->ret= gearman_worker_wait(&(obj->worker)); - if (! PHP_GEARMAN_CLIENT_RET_OK(obj->ret)) { + if (! PHP_GEARMAN_CLIENT_RET_OK(obj->ret) && + obj->ret != GEARMAN_TIMEOUT) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", gearman_worker_error(&(obj- >worker))); RETURN_FALSE; } + if (! PHP_GEARMAN_CLIENT_RET_OK(obj->ret)) { + RETURN_FALSE; + } + RETURN_TRUE; } @@ -3554,7 +3559,8 @@ obj->ret= gearman_worker_work(&(obj->worker)); if (obj->ret != GEARMAN_SUCCESS && obj->ret != GEARMAN_IO_WAIT && - obj->ret != GEARMAN_WORK_FAIL) { + obj->ret != GEARMAN_WORK_FAIL && obj->ret != GEARMAN_TIMEOUT && + obj->ret != GEARMAN_NO_JOBS) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", gearman_worker_error(&(obj->worker))); RETURN_FALSE; ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=59423 -- Edit this bug report at https://bugs.php.net/bug.php?id=59423&edit=1