Actions
Bug #8104
closed[SDK] PyCurl 7.21.5 breaks keepclient
Story points:
-
Description
Symptom: keepclient fails with TypeError: _socket_open() takes at least 3 arguments (2 given)
This is due to an API change in PyCurl:
From http://pycurl.sourceforge.net/ChangeLog
Version 7.21.5 [requires libcurl-7.19.0 or better] - 2016-01-05 * Breaking change: OPENSOCKETFUNCTION callback API now mirrors that of libcurl: 1. The callback now takes two arguments, `purpose' and `address`. Previously the callback took `family', `socktype', `protocol` and `addr' arguments. 2. The second argument to the callback, `address', is a `namedtuple' with `family', `socktype', `protocol' and `addr' fields. 3. `addr' field on `address' for AF_INET6 family addresses is a 4-tuple of (address, port, flow info, scope id) which matches Python's `socket.getaddrinfo' API. It seems that libcurl may mishandle error return from an opensocket callback, as would happen when code written for pre-PycURL 7.21.5 API is run with PycURL 7.21.5 or newer, resulting in the application hanging.
As a quick fix, we can add a version constraint <7.21.5
to prevent installing the newest PyCurl package.
Related issues
Actions