Project

Profile

Help

Story #1866

Updated by jcline@redhat.com about 8 years ago

The following traceback was observed by a Katello user to happen intermittently: 
 <pre> 
 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) 
 </pre> 

 'wrong version number' comes from OpenSSL (by way of M2Crypt). I believe[0] indicates that the protocol version number provided during the handshake is invalid. This could happen due to a very old version of OpenSSL (or a very oddly configured cipher set for Apache), but more likely it happened or potentially because the handshake failed in some other odd way (socket read error or similiar). error?). 

 It would be nice if we retried when certain connection errors occurred (initial connections, timeouts for In any case, since it happens intermittently, it seems unlikely that it's a protocol version mis-match and is more likely a network problem. We should retry safe HTTP methods, etc) automatically with pulp-admin. All methods. Python's requests library lets us do this would (and also causes us to stop using M2Crypto here which could be provided if we switched to the requests library source of the trouble with the above traceback, for pulp-admin.  

 all I know). 

 [0] https://github.com/openssl/openssl/blob/83f68df32f0067ee7b092f70568fc33e526fd4fd/ssl/record/ssl3_record.c#L306-L320

Back