فهرست منبع

swap order of detection for protocols (#4357)

we detected that during cycles between celery 3.1.25 and celery 4.1.0 workers, a message returning from a celery 4.1.0 worker crashes 3.1.25 workers with an unrecoverable error due to "hybrid" messages.
Russell Keith-Magee 7 سال پیش
والد
کامیت
0128d5a932
1فایلهای تغییر یافته به همراه2 افزوده شده و 2 حذف شده
  1. 2 2
      celery/worker/consumer.py

+ 2 - 2
celery/worker/consumer.py

@@ -450,10 +450,10 @@ class Consumer(object):
         def on_task_received(body, message):
             headers = message.headers
             try:
-                type_, is_proto2 = headers['task'], 1
+                type_, is_proto2 = body['task'], 0
             except (KeyError, TypeError):
                 try:
-                    type_, is_proto2 = body['task'], 0
+                    type_, is_proto2 = headers['task'], 1
                 except (KeyError, TypeError):
                     return on_unknown_message(body, message)