Project

Profile

Help

Story #1866

closed

As a user, I'd like pulp-admin to gracefully handle connection failures

Added by jcline@redhat.com about 8 years ago. Updated about 5 years ago.

Status:
CLOSED - WONTFIX
Priority:
Normal
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Quarter:

Description

The following traceback was observed by a Katello user to happen intermittently:

message: (None, 'wrong version number', None)
Traceback (most recent call last):
File \"/usr/lib/python2.7/site-packages/pulp/agent/lib/dispatcher.py\", line 108, in update
    report = handler.update(conduit, units, dict(options))

File \"/usr/lib/python2.7/site-packages/pulp_node/handlers/handler.py\", line 161, in update
    bindings = RepositoryBinding.fetch(pulp_bindings, conduit.consumer_id, repo_ids)

File \"/usr/lib/python2.7/site-packages/pulp_node/handlers/model.py\",
    line 534, in fetch\n    binds.extend(RepositoryBinding.filtered(http.response_body))

File \"/usr/lib/python2.7/site-packages/pulp/bindings/consumer.py\", line 158, in find_by_id
    return self.server.GET(path)

File \"/usr/lib/python2.7/site-packages/pulp/bindings/server.py\", line 92, in GET
    return self._request('GET', path, queries)

File \"/usr/lib/python2.7/site-packages/pulp/bindings/server.py\", line 142, in _request
    response_code, response_body = self.server_wrapper.request(method, url, body)

File \"/usr/lib/python2.7/site-packages/pulp/bindings/server.py\", line 332, in request
    # Attempt to deserialize the body (should pass unless the server is busted)
    ConnectionException: (None, 'wrong version number', None)

This happens when the TLS handshake fails to complete successfully. That can happen due to a real mis-match in supported protocol versions or because the underlying TCP connection came to a premature end.

It would be nice if we retried when certain connection errors occurred (initial connections, timeouts for safe HTTP methods, etc) automatically with pulp-admin. All this would be provided if we switched to the requests library for pulp-admin.

If you're interested in the OpenSSL code that causes this error, it can be found at https://github.com/openssl/openssl/blob/83f68df32f0067ee7b092f70568fc33e526fd4fd/ssl/record/ssl3_record.c#L306-L320


Related issues

Related to Pulp - Refactor #1918: pulp depends on m2crypto, which will not be ported to Python 3CLOSED - NOTABUG

Actions

Also available in: Atom PDF