Merge lp:~brianaker/gearmand/1196552 into lp:gearmand

Proposed by Brian Aker
Status: Merged
Merged at revision: 854
Proposed branch: lp:~brianaker/gearmand/1196552
Merge into: lp:gearmand
Diff against target: 168 lines (+60/-11)
6 files modified
libgearman-server/gearmand_con.cc (+37/-5)
libgearman-server/gearmand_con.h (+4/-3)
libgearman-server/job.cc (+1/-2)
libgearman-server/text.cc (+7/-1)
libtest/client.hpp (+5/-0)
util/instance.hpp (+6/-0)
To merge this branch: bzr merge lp:~brianaker/gearmand/1196552
Reviewer Review Type Date Requested Status
Tangent Trunk Pending
Review via email: mp+179592@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'libgearman-server/gearmand_con.cc'
--- libgearman-server/gearmand_con.cc 2013-07-22 21:18:42 +0000
+++ libgearman-server/gearmand_con.cc 2013-08-11 02:45:20 +0000
@@ -44,6 +44,7 @@
44#include "gear_config.h"44#include "gear_config.h"
45#include "libgearman-server/common.h"45#include "libgearman-server/common.h"
46#include <libgearman-server/gearmand.h>46#include <libgearman-server/gearmand.h>
47#include <libgearman-server/queue.h>
47#include <cstring>48#include <cstring>
4849
49#include <cerrno>50#include <cerrno>
@@ -253,10 +254,11 @@
253 return NULL;254 return NULL;
254}255}
255256
256bool gearman_server_job_cancel(gearman_server_st& server,257gearmand_error_t gearman_server_job_cancel(gearman_server_st& server,
257 const char *job_handle,258 const char *job_handle,
258 const size_t job_handle_length)259 const size_t job_handle_length)
259{260{
261 gearmand_error_t ret= GEARMAND_NO_JOBS;
260 uint32_t key= _server_job_hash(job_handle, job_handle_length);262 uint32_t key= _server_job_hash(job_handle, job_handle_length);
261263
262 gearmand_log_debug(GEARMAN_DEFAULT_LOG_PARAM, "cancel: %.*s", int(job_handle_length), job_handle);264 gearmand_log_debug(GEARMAN_DEFAULT_LOG_PARAM, "cancel: %.*s", int(job_handle_length), job_handle);
@@ -268,14 +270,44 @@
268 if (server_job->job_handle_key == key and270 if (server_job->job_handle_key == key and
269 strncmp(server_job->job_handle, job_handle, GEARMAND_JOB_HANDLE_SIZE) == 0)271 strncmp(server_job->job_handle, job_handle, GEARMAND_JOB_HANDLE_SIZE) == 0)
270 {272 {
273 /* Queue the fail packet for all clients. */
274 for (gearman_server_client_st* client= server_job->client_list; client != NULL; client= client->job_next)
275 {
276 ret= gearman_server_io_packet_add(client->con, false,
277 GEARMAN_MAGIC_RESPONSE,
278 GEARMAN_COMMAND_WORK_FAIL,
279 server_job->job_handle,
280 (size_t)strlen(server_job->job_handle),
281 NULL);
282 if (gearmand_failed(ret))
283 {
284 gearmand_log_gerror_warn(GEARMAN_DEFAULT_LOG_PARAM, ret, "Failed to send WORK_FAIL packet to %s:%s", client->con->host(), client->con->port());
285 }
286 }
287
288 /* Remove from persistent queue if one exists. */
289 if (server_job->job_queued)
290 {
291 ret= gearman_queue_done(Server,
292 server_job->unique,
293 server_job->unique_length,
294 server_job->function->function_name,
295 server_job->function->function_name_size);
296 if (gearmand_failed(ret))
297 {
298 gearmand_gerror("Remove from persistent queue", ret);
299 return ret;
300 }
301 }
302
271 server_job->ignore_job= true;303 server_job->ignore_job= true;
272 server_job->job_queued= false;304 server_job->job_queued= false;
273305
274 return true;306 return GEARMAND_SUCCESS;
275 }307 }
276 }308 }
277309
278 return false;310 return ret;
279}311}
280312
281gearman_server_job_st * gearman_server_job_peek(gearman_server_con_st *server_con)313gearman_server_job_st * gearman_server_job_peek(gearman_server_con_st *server_con)
282314
=== modified file 'libgearman-server/gearmand_con.h'
--- libgearman-server/gearmand_con.h 2013-07-07 00:16:26 +0000
+++ libgearman-server/gearmand_con.h 2013-08-11 02:45:20 +0000
@@ -78,9 +78,10 @@
78 const char *host, const char*,78 const char *host, const char*,
79 struct gearmand_port_st*);79 struct gearmand_port_st*);
8080
81bool gearman_server_job_cancel(gearman_server_st& server,81GEARMAN_API
82 const char *job_handle,82gearmand_error_t gearman_server_job_cancel(gearman_server_st& server,
83 const size_t job_handle_length);83 const char *job_handle,
84 const size_t job_handle_length);
8485
85/**86/**
86 * Free resources used by a connection.87 * Free resources used by a connection.
8788
=== modified file 'libgearman-server/job.cc'
--- libgearman-server/job.cc 2013-08-07 22:23:36 +0000
+++ libgearman-server/job.cc 2013-08-11 02:45:20 +0000
@@ -403,8 +403,7 @@
403 GEARMAN_COMMAND_NOOP, NULL);403 GEARMAN_COMMAND_NOOP, NULL);
404 if (gearmand_failed(ret))404 if (gearmand_failed(ret))
405 {405 {
406 gearmand_gerror("gearman_server_io_packet_add", ret);406 gearmand_log_gerror_warn(GEARMAN_DEFAULT_LOG_PARAM, ret, "Failed to send NOOP packet to %s:%s", worker->con->host(), worker->con->port());
407 return ret;
408 }407 }
409408
410 worker->con->is_noop_sent= true;409 worker->con->is_noop_sent= true;
411410
=== modified file 'libgearman-server/text.cc'
--- libgearman-server/text.cc 2013-07-22 21:18:42 +0000
+++ libgearman-server/text.cc 2013-08-11 02:45:20 +0000
@@ -144,10 +144,16 @@
144 if (packet->argc == 3144 if (packet->argc == 3
145 and strcasecmp("job", (char *)(packet->arg[1])) == 0)145 and strcasecmp("job", (char *)(packet->arg[1])) == 0)
146 {146 {
147 if (gearman_server_job_cancel(Gearmand()->server, packet->arg[2], strlen(packet->arg[2])))147 gearmand_error_t ret= gearman_server_job_cancel(Gearmand()->server, packet->arg[2], strlen(packet->arg[2]));
148
149 if (ret == GEARMAND_SUCCESS)
148 {150 {
149 data.vec_printf(TEXT_SUCCESS);151 data.vec_printf(TEXT_SUCCESS);
150 }152 }
153 else if (ret != GEARMAND_NO_JOBS)
154 {
155 data.vec_printf(TEXT_ERROR_INTERNAL_ERROR);
156 }
151 else157 else
152 {158 {
153 data.vec_printf(TEXT_ERROR_UNKNOWN_JOB);159 data.vec_printf(TEXT_ERROR_UNKNOWN_JOB);
154160
=== modified file 'libtest/client.hpp'
--- libtest/client.hpp 2013-08-07 22:23:36 +0000
+++ libtest/client.hpp 2013-08-11 02:45:20 +0000
@@ -38,6 +38,10 @@
3838
39#include "libgearman/ssl.h"39#include "libgearman/ssl.h"
4040
41#pragma GCC diagnostic push
42#pragma GCC diagnostic ignored "-Wpragmas"
43#pragma GCC diagnostic ignored "-Wunused-private-field"
44
41namespace libtest {45namespace libtest {
4246
43class SimpleClient {47class SimpleClient {
@@ -107,3 +111,4 @@
107};111};
108112
109} // namespace libtest113} // namespace libtest
114#pragma GCC diagnostic pop
110115
=== modified file 'util/instance.hpp'
--- util/instance.hpp 2013-08-07 22:23:36 +0000
+++ util/instance.hpp 2013-08-11 02:45:20 +0000
@@ -52,6 +52,10 @@
5252
53struct addrinfo;53struct addrinfo;
5454
55#pragma GCC diagnostic push
56#pragma GCC diagnostic ignored "-Wpragmas"
57#pragma GCC diagnostic ignored "-Wunused-private-field"
58
55namespace datadifferential {59namespace datadifferential {
56namespace util {60namespace util {
5761
@@ -163,3 +167,5 @@
163167
164} /* namespace util */168} /* namespace util */
165} /* namespace datadifferential */169} /* namespace datadifferential */
170
171#pragma GCC diagnostic pop

Subscribers

People subscribed via source and target branches

to all changes: