Browse Source

Add debug output

Idea is to help understand #135
master
Neil Booth 8 years ago
parent
commit
0145098165
  1. 28
      server/peers.py

28
server/peers.py

@ -189,13 +189,14 @@ class PeerSession(JSONSession):
if not self.has_pending_requests(): if not self.has_pending_requests():
is_good = not self.failed is_good = not self.failed
self.peer_mgr.set_connection_status(self.peer, is_good) self.peer_mgr.set_connection_status(self.peer, is_good)
if is_good: if self.peer.is_tor:
if self.peer.is_tor: how = 'via {} over Tor'.format(self.kind)
self.log_info('verified via {} over Tor'.format(self.kind)) else:
else: how = 'via {} at {}'.format(self.kind,
self.log_info('verified via {} at {}' self.peer_addr(anon=False))
.format(self.kind, status = 'verified' if is_good else 'failed to verify'
self.peer_addr(anon=False))) elapsed = time.time() - self.peer.last_try
self.log_info('{} {} in {:.1f}s'.format(status, how, elapsed))
self.close_connection() self.close_connection()
@ -463,16 +464,21 @@ class PeerManager(util.LoggedClass):
self.last_tor_retry_time = now self.last_tor_retry_time = now
for peer in peers: for peer in peers:
peer.last_try = time.time()
peer.try_count += 1 peer.try_count += 1
pairs = peer.connection_port_pairs() pairs = peer.connection_port_pairs()
if peer.bad or not pairs: if peer.bad or not pairs:
self.maybe_forget_peer(peer) self.maybe_forget_peer(peer)
else: else:
start = time.time()
await self.semaphore.acquire() await self.semaphore.acquire()
elapsed = time.time() - start
if elapsed > 5:
self.log_warning('waited {:.1f}s for connection semaphore'
.format(elapsed))
self.retry_peer(peer, pairs) self.retry_peer(peer, pairs)
def retry_peer(self, peer, port_pairs): def retry_peer(self, peer, port_pairs):
peer.last_try = time.time()
kind, port = port_pairs[0] kind, port = port_pairs[0]
# Python 3.5.3: use PROTOCOL_TLS # Python 3.5.3: use PROTOCOL_TLS
sslc = ssl.SSLContext(ssl.PROTOCOL_SSLv23) if kind == 'SSL' else None sslc = ssl.SSLContext(ssl.PROTOCOL_SSLv23) if kind == 'SSL' else None
@ -496,8 +502,10 @@ class PeerManager(util.LoggedClass):
exception = future.exception() exception = future.exception()
if exception: if exception:
kind, port = port_pairs[0] kind, port = port_pairs[0]
self.logger.info('failed connecting to {} at {} port {:d}: {}' self.logger.info('failed connecting to {} at {} port {:d} '
.format(peer, kind, port, exception)) 'in {:.1f}s: {}'
.format(peer, kind, port,
time.time() - peer.last_try, exception))
port_pairs = port_pairs[1:] port_pairs = port_pairs[1:]
if port_pairs: if port_pairs:
self.retry_peer(peer, port_pairs) self.retry_peer(peer, port_pairs)

Loading…
Cancel
Save