Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python SSL connection "EOF occurred in violation of protocol"

Tags:

I'm using Django Celery task to connect to Facebook Graph API with requests lib using Gevent. Issue I'm constantly running at is that every now and then I get EOF occurred in violation of protocol exception. I've searched around and various sources offer different fixes but none seems to work.

I've tried monkey patching the ssl module(gevent.monkey.patch_all()) and some others too but no luck.

I'm not even sure if this is openssl issue as some sources might suggest as I haven't encountered it before applying Gevent optimisation

Connection error: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol Traceback (most recent call last): File "/home/user/workspace/startup/project/events/tasks.py", line 52, in _process_page data = requests.get(current_url) File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/api.py", line 55, in get return request('get', url, **kwargs) File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/api.py", line 44, in request return session.request(method=method, url=url, **kwargs) File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/sessions.py", line 354, in request resp = self.send(prep, **send_kwargs) File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/sessions.py", line 460, in send r = adapter.send(request, **kwargs) File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/adapters.py", line 250, in send raise SSLError(e) SSLError: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol 

I'm using latest 1.0rc Gevent version.

Another issue that keeps poping up time to time although URL is correct is: Retrying (5 attempts remain) after connection broken by 'error(2, 'No such file or directory')': /ID/events?limit=5000&fields=description,name,location,start_time,end_time&access_token=TOKEN

like image 832
user962563 Avatar asked May 25 '13 11:05

user962563


1 Answers

Using the forced TLSv1 fix as suggested by J.F Sebastian fixed all the issues I was facing.

Hints for future questions regarding:

  • DNSError exception - upgrading Gevent from 0.13.X to 1.0rc fixes this issue

  • SSL issues - look at fix in link provided by J.F Sebastian

like image 152
user962563 Avatar answered Oct 20 '22 08:10

user962563