LibmemcachedQueue::done returns an error if mecache_delete returns MEMCACHED_NOTFOUND
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Gearman |
New
|
Undecided
|
palik |
Bug Description
to reproduce the error start gearmand with libmemcached persistence and create a set X of background jobs without unique key. then start a worker to do the jobs. the first worker-execution will be done without any error. Reminding X-1 executions produce QUEUE_ERROR as described in https:/
status command show in column two "number of workers active" = X -1. Similar report https:/
All the jobs are well done by the worker. The only error is in memcached_delete result evaluation. Expected result is MEMCACHED_SUCCESS, not MEMCACHED_NOTFOUND.
Compare MySQL and libmemcache plugins. MySQL plugin check only mysql_stmt_execute result, which doesn't return an error if nothing was deleted. So by using MySQL the error doesn't occur.
Related branches
- Tangent Trunk: Pending requested
-
Diff: 82 lines (+22/-5) (has conflicts)2 files modifiedlibgearman-server/plugins/protocol/http/protocol.cc (+14/-4)
libgearman-server/plugins/queue/libmemcached/queue.cc (+8/-1)
- Tangent Trunk: Pending requested
-
Diff: 84 lines (+16/-8)3 files modifieddocs/Makefile (+3/-0)
libgearman-server/plugins/protocol/http/protocol.cc (+8/-6)
libgearman-server/plugins/queue/libmemcached/queue.cc (+5/-2)
bug fixing commited in http:// bazaar. launchpad. net/~1- infe-w/ gearmand/ 1.0/revision/ 804 and http:// bazaar. launchpad. net/~1- infe-w/ gearmand/ 1.0/revision/ 805