From dda25bf1ed25aeb699c2161aa43ceac2691b7f3b Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Thu, 14 Apr 2022 08:25:16 -0400 Subject: [PATCH] Router: Restart fixes part 2 Don't set our RI loaded from disk if too old Rekeying was prevented by previous checkin, but this fixes root cause --- history.txt | 17 +++++++++++++++++ .../java/src/net/i2p/router/RouterVersion.java | 2 +- .../i2p/router/startup/LoadRouterInfoJob.java | 11 +++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/history.txt b/history.txt index f95a13ef82..8dd4aedd78 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,20 @@ +2022-04-14 zzz + * Startup: Don't set our RI loaded from disk if too old + +2022-04-13 zzz + * Router: + - Reset uptime on soft restart + - Don't rekey after failure to store our RI due to clock skew + - Change comm system state during soft restart + +2022-04-12 zzz + * Console: Fix Sybil closest hash tabs + * Transport: Fix UPnP deadlock + * Tunnels: Don't build client tunnels less than min length + +2022-04-11 zzz + * I2CP: Fix external I2CP broken when session ID is 0 + 2022-04-05 zzz * SSU2: Fragmented Session Confirmed diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 37a65a7631..2f628a65d0 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Git"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 13; + public final static long BUILD = 14; /** for example "-test" */ public final static String EXTRA = ""; diff --git a/router/java/src/net/i2p/router/startup/LoadRouterInfoJob.java b/router/java/src/net/i2p/router/startup/LoadRouterInfoJob.java index 8ff2f88927..313531fdeb 100644 --- a/router/java/src/net/i2p/router/startup/LoadRouterInfoJob.java +++ b/router/java/src/net/i2p/router/startup/LoadRouterInfoJob.java @@ -131,6 +131,17 @@ class LoadRouterInfoJob extends JobImpl { fis1 = null; rif.delete(); } + if (_us != null) { + long now = getContext().clock().now(); + long riTime = _us.getPublished(); + if (riTime > now || now - riTime > 45*60*1000) { + // prevent netdb store failure and rekey + _us = null; + try { fis1.close(); } catch (IOException ioe2) {} + fis1 = null; + rif.delete(); + } + } } if (keys2Exist || keysExist) { -- GitLab