From d44d8cc53dcfac61dcb5021aecad4ad7953b487a Mon Sep 17 00:00:00 2001 From: jrandom <jrandom> Date: Sun, 1 Aug 2004 20:41:33 +0000 Subject: [PATCH] penalize peers whose tunnels probably fail, but still dont kill those tunnels quite yet logging --- .../PoolingTunnelManagerFacade.java | 17 ++++++++--------- .../i2p/router/tunnelmanager/TunnelPool.java | 4 ++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelManagerFacade.java b/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelManagerFacade.java index cbd989c582..b7cfbc1510 100644 --- a/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelManagerFacade.java +++ b/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelManagerFacade.java @@ -149,27 +149,26 @@ public class PoolingTunnelManagerFacade implements TunnelManagerFacade { * */ public void peerFailed(Hash peer) { - if (true) { - _log.error("Peer " + peer.toBase64() + " failed, but we're not going to kill their tunnels", new Exception("wtf")); - return; - } int numFailed = 0; + boolean shouldKill = false; for (Iterator iter = _pool.getManagedTunnelIds().iterator(); iter.hasNext(); ) { TunnelId id = (TunnelId)iter.next(); TunnelInfo info = (TunnelInfo)_pool.getTunnelInfo(id); if (isParticipant(info, peer)) { _log.info("Peer " + peer.toBase64() + " failed and they participate in tunnel " + id.getTunnelId() + ". Marking the tunnel as not ready!"); - info.setIsReady(false); + if (shouldKill) { + info.setIsReady(false); + long lifetime = _context.clock().now() - info.getCreated(); + _context.statManager().addRateData("tunnel.failAfterTime", lifetime, lifetime); + } numFailed++; - - long lifetime = _context.clock().now() - info.getCreated(); - _context.statManager().addRateData("tunnel.failAfterTime", lifetime, lifetime); } } if (_log.shouldLog(Log.INFO)) - _log.info("On peer " + peer.toBase64() + " failure, " + numFailed + " tunnels were killed"); + _log.info("On peer " + peer.toBase64() + " failure, " + numFailed + " tunnels were " + + (shouldKill ? "" : "NOT ") + "killed"); } private boolean isParticipant(TunnelInfo info, Hash peer) { diff --git a/router/java/src/net/i2p/router/tunnelmanager/TunnelPool.java b/router/java/src/net/i2p/router/tunnelmanager/TunnelPool.java index 809f73ffc3..53149209c4 100644 --- a/router/java/src/net/i2p/router/tunnelmanager/TunnelPool.java +++ b/router/java/src/net/i2p/router/tunnelmanager/TunnelPool.java @@ -526,8 +526,8 @@ class TunnelPool { public void tunnelFailed(TunnelId id) { if (!_isLive) return; - if (_log.shouldLog(Log.ERROR)) - _log.error("Tunnel " + id + " marked as not ready, since it /failed/", new Exception("Failed tunnel")); + if (_log.shouldLog(Log.WARN)) + _log.warn("Tunnel " + id + " marked as not ready, since it /failed/", new Exception("Failed tunnel")); TunnelInfo info = getTunnelInfo(id); if (info == null) return; -- GitLab