Merge lp:~brianaker/gearmand/fix-exceptions into lp:gearmand
- fix-exceptions
- Merge into 1.2
Proposed by
Brian Aker
Status: | Merged | ||||
---|---|---|---|---|---|
Merged at revision: | 841 | ||||
Proposed branch: | lp:~brianaker/gearmand/fix-exceptions | ||||
Merge into: | lp:gearmand | ||||
Diff against target: |
248 lines (+26/-29) 5 files modified
libgearman-server/server.cc (+20/-21) libgearman/job.cc (+0/-6) libtest/run-ci.gdb (+1/-1) tests/burnin.cc (+4/-0) tests/stress.am (+1/-1) |
||||
To merge this branch: | bzr merge lp:~brianaker/gearmand/fix-exceptions | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Tangent Trunk | Pending | ||
Review via email: mp+176294@code.launchpad.net |
Commit message
Description of the change
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
1 | === modified file 'libgearman-server/server.cc' | |||
2 | --- libgearman-server/server.cc 2013-07-16 20:59:59 +0000 | |||
3 | +++ libgearman-server/server.cc 2013-07-22 21:50:44 +0000 | |||
4 | @@ -71,13 +71,14 @@ | |||
5 | 71 | /** | 71 | /** |
6 | 72 | * Queue an error packet. | 72 | * Queue an error packet. |
7 | 73 | */ | 73 | */ |
9 | 74 | static gearmand_error_t _server_error_packet(gearman_server_con_st *server_con, | 74 | static gearmand_error_t _server_error_packet(const char *position_, const char *func_, |
10 | 75 | gearman_server_con_st *server_con, | ||
11 | 75 | gearman_return_t client_return_code, const char *error_string, const size_t error_string_length) | 76 | gearman_return_t client_return_code, const char *error_string, const size_t error_string_length) |
12 | 76 | { | 77 | { |
13 | 77 | const char* error_code_string= gearman_strerror(client_return_code); | 78 | const char* error_code_string= gearman_strerror(client_return_code); |
14 | 78 | error_code_string+= 8; | 79 | error_code_string+= 8; |
15 | 79 | 80 | ||
17 | 80 | gearmand_log_error(GEARMAN_DEFAULT_LOG_PARAM, "%s:%.*s", gearman_strerror(client_return_code), int(error_string_length), error_string); | 81 | gearmand_log_error(position_, func_, "%s:%.*s", gearman_strerror(client_return_code), int(error_string_length), error_string); |
18 | 81 | 82 | ||
19 | 82 | return gearman_server_io_packet_add(server_con, false, GEARMAN_MAGIC_RESPONSE, | 83 | return gearman_server_io_packet_add(server_con, false, GEARMAN_MAGIC_RESPONSE, |
20 | 83 | GEARMAN_COMMAND_ERROR, error_code_string, | 84 | GEARMAN_COMMAND_ERROR, error_code_string, |
21 | @@ -107,12 +108,12 @@ | |||
22 | 107 | 108 | ||
23 | 108 | if (packet->magic == GEARMAN_MAGIC_RESPONSE) | 109 | if (packet->magic == GEARMAN_MAGIC_RESPONSE) |
24 | 109 | { | 110 | { |
26 | 110 | return _server_error_packet(server_con, GEARMAN_INVALID_MAGIC, gearman_literal_param("Request magic expected")); | 111 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_INVALID_MAGIC, gearman_literal_param("Request magic expected")); |
27 | 111 | } | 112 | } |
28 | 112 | 113 | ||
29 | 113 | if (uint32_t(packet->command) >= uint32_t(GEARMAN_COMMAND_MAX)) | 114 | if (uint32_t(packet->command) >= uint32_t(GEARMAN_COMMAND_MAX)) |
30 | 114 | { | 115 | { |
32 | 115 | return _server_error_packet(server_con, GEARMAN_INVALID_COMMAND, gearman_literal_param("Invalid command expected")); | 116 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_INVALID_COMMAND, gearman_literal_param("Invalid command expected")); |
33 | 116 | } | 117 | } |
34 | 117 | 118 | ||
35 | 118 | gearmand_log_debug(GEARMAN_DEFAULT_LOG_PARAM, | 119 | gearmand_log_debug(GEARMAN_DEFAULT_LOG_PARAM, |
36 | @@ -153,7 +154,7 @@ | |||
37 | 153 | { | 154 | { |
38 | 154 | gearman_server_client_free(server_client); | 155 | gearman_server_client_free(server_client); |
39 | 155 | gearmand_gerror("unique value too large", GEARMAND_ARGUMENT_TOO_LARGE); | 156 | gearmand_gerror("unique value too large", GEARMAND_ARGUMENT_TOO_LARGE); |
41 | 156 | return _server_error_packet(server_con, GEARMAN_ARGUMENT_TOO_LARGE, gearman_literal_param("Unique value too large")); | 157 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_ARGUMENT_TOO_LARGE, gearman_literal_param("Unique value too large")); |
42 | 157 | } | 158 | } |
43 | 158 | 159 | ||
44 | 159 | gearman_job_priority_t map_priority= GEARMAN_JOB_PRIORITY_NORMAL; | 160 | gearman_job_priority_t map_priority= GEARMAN_JOB_PRIORITY_NORMAL; |
45 | @@ -173,13 +174,13 @@ | |||
46 | 173 | else if (ret == GEARMAND_JOB_QUEUE_FULL) | 174 | else if (ret == GEARMAND_JOB_QUEUE_FULL) |
47 | 174 | { | 175 | { |
48 | 175 | gearman_server_client_free(server_client); | 176 | gearman_server_client_free(server_client); |
50 | 176 | return _server_error_packet(server_con, GEARMAN_QUEUE_ERROR, gearman_literal_param("Job queue is full")); | 177 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_QUEUE_ERROR, gearman_literal_param("Job queue is full")); |
51 | 177 | } | 178 | } |
52 | 178 | else if (ret != GEARMAND_JOB_EXISTS) | 179 | else if (ret != GEARMAND_JOB_EXISTS) |
53 | 179 | { | 180 | { |
54 | 180 | gearman_server_client_free(server_client); | 181 | gearman_server_client_free(server_client); |
55 | 181 | gearmand_gerror("gearman_server_job_add", ret); | 182 | gearmand_gerror("gearman_server_job_add", ret); |
57 | 182 | return _server_error_packet(server_con, GEARMAN_QUEUE_ERROR, gearmand_strerror(ret), strlen(gearmand_strerror(ret))); | 183 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_QUEUE_ERROR, gearmand_strerror(ret), strlen(gearmand_strerror(ret))); |
58 | 183 | } | 184 | } |
59 | 184 | 185 | ||
60 | 185 | /* Queue the job created packet. */ | 186 | /* Queue the job created packet. */ |
61 | @@ -275,7 +276,7 @@ | |||
62 | 275 | { | 276 | { |
63 | 276 | gearmand_gerror("unique value too large", GEARMAND_ARGUMENT_TOO_LARGE); | 277 | gearmand_gerror("unique value too large", GEARMAND_ARGUMENT_TOO_LARGE); |
64 | 277 | gearman_server_client_free(server_client); | 278 | gearman_server_client_free(server_client); |
66 | 278 | return _server_error_packet(server_con, GEARMAN_ARGUMENT_TOO_LARGE, gearman_literal_param("Unique value too large")); | 279 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_ARGUMENT_TOO_LARGE, gearman_literal_param("Unique value too large")); |
67 | 279 | } | 280 | } |
68 | 280 | 281 | ||
69 | 281 | /* Schedule job. */ | 282 | /* Schedule job. */ |
70 | @@ -293,13 +294,13 @@ | |||
71 | 293 | else if (ret == GEARMAND_JOB_QUEUE_FULL) | 294 | else if (ret == GEARMAND_JOB_QUEUE_FULL) |
72 | 294 | { | 295 | { |
73 | 295 | gearman_server_client_free(server_client); | 296 | gearman_server_client_free(server_client); |
75 | 296 | return _server_error_packet(server_con, GEARMAN_QUEUE_ERROR, gearman_literal_param("Job queue is full")); | 297 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_QUEUE_ERROR, gearman_literal_param("Job queue is full")); |
76 | 297 | } | 298 | } |
77 | 298 | else if (ret != GEARMAND_JOB_EXISTS) | 299 | else if (ret != GEARMAND_JOB_EXISTS) |
78 | 299 | { | 300 | { |
79 | 300 | gearman_server_client_free(server_client); | 301 | gearman_server_client_free(server_client); |
80 | 301 | gearmand_gerror("gearman_server_job_add", ret); | 302 | gearmand_gerror("gearman_server_job_add", ret); |
82 | 302 | return _server_error_packet(server_con, GEARMAN_QUEUE_ERROR, gearmand_strerror(ret), strlen(gearmand_strerror(ret))); | 303 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_QUEUE_ERROR, gearmand_strerror(ret), strlen(gearmand_strerror(ret))); |
83 | 303 | } | 304 | } |
84 | 304 | 305 | ||
85 | 305 | /* Queue the job created packet. */ | 306 | /* Queue the job created packet. */ |
86 | @@ -492,7 +493,7 @@ | |||
87 | 492 | if (option_length >= GEARMAND_OPTION_SIZE || option_length < 0) | 493 | if (option_length >= GEARMAND_OPTION_SIZE || option_length < 0) |
88 | 493 | { | 494 | { |
89 | 494 | gearmand_log_error(GEARMAN_DEFAULT_LOG_PARAM, "snprintf(%d)", option_length); | 495 | gearmand_log_error(GEARMAN_DEFAULT_LOG_PARAM, "snprintf(%d)", option_length); |
91 | 495 | return _server_error_packet(server_con, GEARMAN_UNKNOWN_OPTION, | 496 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_UNKNOWN_OPTION, |
92 | 496 | gearman_literal_param("Server does not recognize given option")); | 497 | gearman_literal_param("Server does not recognize given option")); |
93 | 497 | } | 498 | } |
94 | 498 | 499 | ||
95 | @@ -503,7 +504,7 @@ | |||
96 | 503 | } | 504 | } |
97 | 504 | else | 505 | else |
98 | 505 | { | 506 | { |
100 | 506 | return _server_error_packet(server_con, GEARMAN_UNKNOWN_OPTION, | 507 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_UNKNOWN_OPTION, |
101 | 507 | gearman_literal_param("Server does not recognize given option")); | 508 | gearman_literal_param("Server does not recognize given option")); |
102 | 508 | } | 509 | } |
103 | 509 | 510 | ||
104 | @@ -707,7 +708,7 @@ | |||
105 | 707 | server_con); | 708 | server_con); |
106 | 708 | if (server_job == NULL) | 709 | if (server_job == NULL) |
107 | 709 | { | 710 | { |
109 | 710 | return _server_error_packet(server_con, GEARMAN_JOB_NOT_FOUND, gearman_literal_param("Job does not exist on server")); | 711 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_JOB_NOT_FOUND, gearman_literal_param("Job does not exist on server")); |
110 | 711 | } | 712 | } |
111 | 712 | 713 | ||
112 | 713 | /* Queue the data/warning packet for all clients. */ | 714 | /* Queue the data/warning packet for all clients. */ |
113 | @@ -728,7 +729,7 @@ | |||
114 | 728 | server_con); | 729 | server_con); |
115 | 729 | if (server_job == NULL) | 730 | if (server_job == NULL) |
116 | 730 | { | 731 | { |
118 | 731 | return _server_error_packet(server_con, GEARMAN_JOB_NOT_FOUND, | 732 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_JOB_NOT_FOUND, |
119 | 732 | gearman_literal_param("Job given in work result not found")); | 733 | gearman_literal_param("Job given in work result not found")); |
120 | 733 | } | 734 | } |
121 | 734 | 735 | ||
122 | @@ -778,7 +779,7 @@ | |||
123 | 778 | server_con); | 779 | server_con); |
124 | 779 | if (server_job == NULL) | 780 | if (server_job == NULL) |
125 | 780 | { | 781 | { |
127 | 781 | return _server_error_packet(server_con, GEARMAN_JOB_NOT_FOUND, gearman_literal_param("Job given in work result not found")); | 782 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_JOB_NOT_FOUND, gearman_literal_param("Job given in work result not found")); |
128 | 782 | } | 783 | } |
129 | 783 | 784 | ||
130 | 784 | /* Queue the complete packet for all clients. */ | 785 | /* Queue the complete packet for all clients. */ |
131 | @@ -820,7 +821,7 @@ | |||
132 | 820 | server_job->function->function_name_size, server_job->function->function_name, server_job->function->function_name_size); | 821 | server_job->function->function_name_size, server_job->function->function_name, server_job->function->function_name_size); |
133 | 821 | if (server_job == NULL) | 822 | if (server_job == NULL) |
134 | 822 | { | 823 | { |
136 | 823 | return _server_error_packet(server_con, GEARMAN_JOB_NOT_FOUND, | 824 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_JOB_NOT_FOUND, |
137 | 824 | gearman_literal_param("An exception was received for a job that does not exist")); | 825 | gearman_literal_param("An exception was received for a job that does not exist")); |
138 | 825 | } | 826 | } |
139 | 826 | 827 | ||
140 | @@ -831,7 +832,6 @@ | |||
141 | 831 | return gearmand_gerror("_server_queue_work_data", ret); | 832 | return gearmand_gerror("_server_queue_work_data", ret); |
142 | 832 | } | 833 | } |
143 | 833 | 834 | ||
144 | 834 | #if 0 | ||
145 | 835 | /* Remove from persistent queue if one exists. */ | 835 | /* Remove from persistent queue if one exists. */ |
146 | 836 | if (server_job->job_queued) | 836 | if (server_job->job_queued) |
147 | 837 | { | 837 | { |
148 | @@ -849,7 +849,6 @@ | |||
149 | 849 | 849 | ||
150 | 850 | /* Job is done, remove it. */ | 850 | /* Job is done, remove it. */ |
151 | 851 | gearman_server_job_free(server_job); | 851 | gearman_server_job_free(server_job); |
152 | 852 | #endif | ||
153 | 853 | } | 852 | } |
154 | 854 | 853 | ||
155 | 855 | break; | 854 | break; |
156 | @@ -864,7 +863,7 @@ | |||
157 | 864 | 863 | ||
158 | 865 | if (job_handle_length >= GEARMAND_JOB_HANDLE_SIZE || job_handle_length < 0) | 864 | if (job_handle_length >= GEARMAND_JOB_HANDLE_SIZE || job_handle_length < 0) |
159 | 866 | { | 865 | { |
161 | 867 | return _server_error_packet(server_con, GEARMAN_ARGUMENT_TOO_LARGE, | 866 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_ARGUMENT_TOO_LARGE, |
162 | 868 | gearman_literal_param("Error occured due to GEARMAND_JOB_HANDLE_SIZE being too small from snprintf")); | 867 | gearman_literal_param("Error occured due to GEARMAND_JOB_HANDLE_SIZE being too small from snprintf")); |
163 | 869 | } | 868 | } |
164 | 870 | 869 | ||
165 | @@ -872,7 +871,7 @@ | |||
166 | 872 | server_con); | 871 | server_con); |
167 | 873 | if (server_job == NULL) | 872 | if (server_job == NULL) |
168 | 874 | { | 873 | { |
170 | 875 | return _server_error_packet(server_con, GEARMAN_JOB_NOT_FOUND, | 874 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_JOB_NOT_FOUND, |
171 | 876 | gearman_literal_param("Job given in work result not found")); | 875 | gearman_literal_param("Job given in work result not found")); |
172 | 877 | } | 876 | } |
173 | 878 | 877 | ||
174 | @@ -937,7 +936,7 @@ | |||
175 | 937 | case GEARMAN_COMMAND_MAX: | 936 | case GEARMAN_COMMAND_MAX: |
176 | 938 | case GEARMAN_COMMAND_STATUS_RES_UNIQUE: | 937 | case GEARMAN_COMMAND_STATUS_RES_UNIQUE: |
177 | 939 | default: | 938 | default: |
179 | 940 | return _server_error_packet(server_con, GEARMAN_INVALID_COMMAND, gearman_literal_param("Command not expected")); | 939 | return _server_error_packet(GEARMAN_DEFAULT_LOG_PARAM, server_con, GEARMAN_INVALID_COMMAND, gearman_literal_param("Command not expected")); |
180 | 941 | } | 940 | } |
181 | 942 | 941 | ||
182 | 943 | return GEARMAND_SUCCESS; | 942 | return GEARMAND_SUCCESS; |
183 | 944 | 943 | ||
184 | === modified file 'libgearman/job.cc' | |||
185 | --- libgearman/job.cc 2013-07-16 20:59:59 +0000 | |||
186 | +++ libgearman/job.cc 2013-07-22 21:50:44 +0000 | |||
187 | @@ -204,10 +204,6 @@ | |||
188 | 204 | } | 204 | } |
189 | 205 | } | 205 | } |
190 | 206 | 206 | ||
191 | 207 | job->options.assigned_in_use= false; | ||
192 | 208 | job->options.work_in_use= false; | ||
193 | 209 | job->options.finished= false; | ||
194 | 210 | |||
195 | 211 | job->reducer= NULL; | 207 | job->reducer= NULL; |
196 | 212 | job->_error_code= GEARMAN_UNKNOWN_STATE; | 208 | job->_error_code= GEARMAN_UNKNOWN_STATE; |
197 | 213 | 209 | ||
198 | @@ -542,9 +538,7 @@ | |||
199 | 542 | { | 538 | { |
200 | 543 | return job->error_code(); | 539 | return job->error_code(); |
201 | 544 | } | 540 | } |
202 | 545 | #if 0 | ||
203 | 546 | job->finished(true); | 541 | job->finished(true); |
204 | 547 | #endif | ||
205 | 548 | } | 542 | } |
206 | 549 | 543 | ||
207 | 550 | return GEARMAN_SUCCESS; | 544 | return GEARMAN_SUCCESS; |
208 | 551 | 545 | ||
209 | === modified file 'libtest/run-ci.gdb' | |||
210 | --- libtest/run-ci.gdb 2013-05-03 06:03:28 +0000 | |||
211 | +++ libtest/run-ci.gdb 2013-07-22 21:50:44 +0000 | |||
212 | @@ -1,7 +1,7 @@ | |||
213 | 1 | set logging on | 1 | set logging on |
214 | 2 | set logging overwrite on | 2 | set logging overwrite on |
215 | 3 | set environment LIBTEST_IN_GDB=1 | 3 | set environment LIBTEST_IN_GDB=1 |
217 | 4 | set ASAN_OPTIONS=abort_on_error=1 | 4 | #set ASAN_OPTIONS=abort_on_error=1 |
218 | 5 | run | 5 | run |
219 | 6 | thread apply all bt | 6 | thread apply all bt |
220 | 7 | quit | 7 | quit |
221 | 8 | 8 | ||
222 | === modified file 'tests/burnin.cc' | |||
223 | --- tests/burnin.cc 2013-07-14 23:20:12 +0000 | |||
224 | +++ tests/burnin.cc 2013-07-22 21:50:44 +0000 | |||
225 | @@ -74,6 +74,10 @@ | |||
226 | 74 | Error << "gearman_job_send_exception(" << gearman_strerror(ret) << ")"; | 74 | Error << "gearman_job_send_exception(" << gearman_strerror(ret) << ")"; |
227 | 75 | return GEARMAN_WORK_ERROR; | 75 | return GEARMAN_WORK_ERROR; |
228 | 76 | } | 76 | } |
229 | 77 | else | ||
230 | 78 | { | ||
231 | 79 | return ret; | ||
232 | 80 | } | ||
233 | 77 | } | 81 | } |
234 | 78 | 82 | ||
235 | 79 | // We will pass back wrong responses from time to time. | 83 | // We will pass back wrong responses from time to time. |
236 | 80 | 84 | ||
237 | === modified file 'tests/stress.am' | |||
238 | --- tests/stress.am 2013-07-03 03:54:06 +0000 | |||
239 | +++ tests/stress.am 2013-07-22 21:50:44 +0000 | |||
240 | @@ -19,7 +19,7 @@ | |||
241 | 19 | t_stress_LDADD+= libgearman/libgearman.la | 19 | t_stress_LDADD+= libgearman/libgearman.la |
242 | 20 | t_stress_LDADD+= libtest/libtest.la | 20 | t_stress_LDADD+= libtest/libtest.la |
243 | 21 | t_stress_LDADD+= tests/libstartworker.la | 21 | t_stress_LDADD+= tests/libstartworker.la |
245 | 22 | check_PROGRAMS+=t/stress | 22 | #check_PROGRAMS+=t/stress |
246 | 23 | noinst_PROGRAMS+=t/stress | 23 | noinst_PROGRAMS+=t/stress |
247 | 24 | 24 | ||
248 | 25 | test-stress: t/stress gearmand/gearmand | 25 | test-stress: t/stress gearmand/gearmand |