##// END OF EJS Templates
preserve header for resubmitted tasks...
MinRK -
Show More
@@ -1166,7 +1166,11 b' class Hub(SessionFactory):'
1166 msg = self.session.msg(header['msg_type'])
1166 msg = self.session.msg(header['msg_type'])
1167 msg_id = msg['msg_id']
1167 msg_id = msg['msg_id']
1168 msg['content'] = rec['content']
1168 msg['content'] = rec['content']
1169 header.update(msg['header'])
1169
1170 # use the old header, but update msg_id and timestamp
1171 fresh = msg['header']
1172 header['msg_id'] = fresh['msg_id']
1173 header['date'] = fresh['date']
1170 msg['header'] = header
1174 msg['header'] = header
1171
1175
1172 self.session.send(self.resubmit, msg, buffers=rec['buffers'])
1176 self.session.send(self.resubmit, msg, buffers=rec['buffers'])
@@ -312,6 +312,28 b' class TestClient(ClusterTestCase):'
312 r2 = ahr.get(1)
312 r2 = ahr.get(1)
313 self.assertFalse(r1 == r2)
313 self.assertFalse(r1 == r2)
314
314
315 def test_resubmit_header(self):
316 """resubmit shouldn't clobber the whole header"""
317 def f():
318 import random
319 return random.random()
320 v = self.client.load_balanced_view()
321 v.retries = 1
322 ar = v.apply_async(f)
323 r1 = ar.get(1)
324 # give the Hub a chance to notice:
325 self._wait_for_idle()
326 ahr = self.client.resubmit(ar.msg_ids)
327 ahr.get(1)
328 time.sleep(0.5)
329 records = self.client.db_query({'msg_id': {'$in': ar.msg_ids + ahr.msg_ids}}, keys='header')
330 h1,h2 = [ r['header'] for r in records ]
331 for key in set(h1.keys()).union(set(h2.keys())):
332 if key in ('msg_id', 'date'):
333 self.assertNotEquals(h1[key], h2[key])
334 else:
335 self.assertEquals(h1[key], h2[key])
336
315 def test_resubmit_aborted(self):
337 def test_resubmit_aborted(self):
316 def f():
338 def f():
317 import random
339 import random
@@ -384,4 +406,3 b' class TestClient(ClusterTestCase):'
384 "Shouldn't be spinning, but got wall_time=%f" % ar.wall_time
406 "Shouldn't be spinning, but got wall_time=%f" % ar.wall_time
385 )
407 )
386
408
387
General Comments 0
You need to be logged in to leave comments. Login now