2016-12-11 3 views
7

मेरे पास उत्पादन में Django ऐप सेलेरी और अमेज़ॅन एसक्यूएस के साथ मिलकर काम कर रहा है। मेरी अजवाइन लॉग में हर दिन मैं देख सकता हूँ SSL त्रुटि थी:Django + Celery + SQS -> boto.exception.SQSError: SQSError: 599 gnutls_handshake()

[ERROR/MainProcess] Empty body: SQSError: 599 gnutls_handshake() failed: An unexpected TLS packet was received. 

जो अगले त्रुटि द्वारा इस प्रकार दलाल को फिर से कनेक्ट करने का प्रयास करते समय:

[2016-12-14 16:06:28,917: WARNING/MainProcess] consumer: Connection to broker lost. Trying to re-establish the connection... 
Traceback (most recent call last): 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/celery/worker/consumer/consumer.py", line 318, in start 
    blueprint.start(self) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/celery/bootsteps.py", line 119, in start 
    step.start(parent) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/celery/worker/consumer/consumer.py", line 584, in start 
    c.loop(*c.loop_args()) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/celery/worker/loops.py", line 88, in asynloop 
    next(loop) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/kombu/async/hub.py", line 284, in create_loop 
    poll_timeout = fire_timers(propagate=propagate) if scheduled else 1 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/kombu/async/hub.py", line 137, in fire_timers 
    entry() 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/kombu/async/timer.py", line 68, in __call__ 
    return self.fun(*self.args, **self.kwargs) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/kombu/async/timer.py", line 127, in _reschedules 
    return fun(*args, **kwargs) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/kombu/async/http/curl.py", line 108, in _timeout_check 
    self._process_pending_requests() 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/kombu/async/http/curl.py", line 132, in _process_pending_requests 
    self._process(curl, errno, reason) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/kombu/async/http/curl.py", line 178, in _process 
    buffer=buffer, effective_url=effective_url, error=error, 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/vine/promises.py", line 146, in __call__ 
    svpending(*ca, **ck) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/vine/promises.py", line 139, in __call__ 
    return self.throw() 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/vine/promises.py", line 136, in __call__ 
    retval = fun(*final_args, **final_kwargs) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/vine/funtools.py", line 100, in _transback 
    return callback(ret) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/vine/promises.py", line 139, in __call__ 
    return self.throw() 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/vine/promises.py", line 136, in __call__ 
    retval = fun(*final_args, **final_kwargs) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/vine/funtools.py", line 98, in _transback 
    callback.throw() 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/vine/funtools.py", line 96, in _transback 
    ret = filter_(*args + (ret,), **kwargs) 
    File "/home/ubuntu/virtualenvs/env/lib/python3.5/site-packages/kombu/async/aws/connection.py", line 269, in _on_list_ready 
    raise self._for_status(response, body) 
boto.exception.SQSError: SQSError: 599 gnutls_handshake() failed: An unexpected TLS packet was received. 

कभी कभी कतारों इस संदेश को और मैं के बाद दुर्घटनाग्रस्त कर रहे हैं मेरे सेलेरी श्रमिकों को पुनरारंभ करना होगा। आम तौर पर मुझे यकीन नहीं है कि मुझे यह त्रुटि मिलने के बाद सेलेरी कार्य चल रहे हैं और सही तरीके से निष्पादित किए गए हैं।

इस समस्या को हल करने का सबसे अच्छा तरीका क्या है?

उत्तर

6

ऐसा लगता है कि मुझे मेरे प्रश्न पर एक उत्तर मिला है। समस्या कोम्बू में थी -> pycurl -> कर्ल -> gnutls। जीएनयूटीएलएस पुस्तकालय हमेशा एसएसएल कनेक्शन छोड़ देता है। तो मुझे एकमात्र संभावित समाधान मिला है जो libcurl को GnuTLS के बजाय openssl के साथ मिलकर काम करने के लिए मजबूर कर रहा है।

यहाँ कदम गाइड द्वारा मेरे कदम "How to reinstall curl"

क्षमा करें, लोगों को है, लेकिन मेरे इनाम मेरे पास वापस चला जाता है! ;-)

संबंधित मुद्दे