Project

General

Profile

Actions

Bug #8104

closed

[SDK] PyCurl 7.21.5 breaks keepclient

Added by Peter Amstutz over 8 years ago. Updated about 7 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
SDKs
Target version:
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.


Subtasks 1 (0 open1 closed)

Task #11430: Review 8104-pycurl-721Resolved04/12/2017Actions

Related issues

Related to Arvados - Bug #8120: keep error, TypeError: _socket_open() takes at least 3 arguementsResolved01/06/2016Actions
Related to Arvados - Bug #11237: python-arvados-python-client depends on old versions of packagesResolvedPeter Amstutz03/09/2017Actions
Actions

Also available in: Atom PDF