gearman_client_run_tasks() doesn't return in concurrent task interface
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Gearman |
Fix Released
|
High
|
Eric Day |
Bug Description
There seems to be a strange "off-by-one" error when using the concurrent task interface with multiple gearman servers that causes gearman_
With the attached patch I was able to reproduce the behavior. Here's the test setup:
start two gearmand (port 4730 and 4731)
start one examples/
start ./examples/
output:
[...]
9, Completed: H:dennis.
8, Completed: H:dennis.
7, Completed: H:dennis.
6, Completed: H:dennis.
5, Completed: H:dennis.
4, Completed: H:dennis.
3, Completed: H:dennis.
2, Completed: H:dennis.
<-- here it just hangs. The first number is a simple counter of all tasks created.
Changed in gearmand: | |
milestone: | none → 0.11 |
assignee: | nobody → Eric Day (eday) |
importance: | Undecided → High |
status: | New → Fix Committed |
Changed in gearmand: | |
status: | Fix Committed → Fix Released |
I suffer this problem too. It breaks my script. How can I fix it? I am using PHP PECL ext 0.6.0 with libgearman 0.11. I installed using yum on CentOS 5.4.
This is the error it gives: client_ run_tasks: Assertion `client->task != ((void *)0)`failed.
php: client.c:773: gearman_
http:// pastie. org/private/ jzm9ox4kogpllz9 onl7ma #110 seems to be the main cause, although the real cause will be in client.c?