Opened 3 years ago

Last modified 3 years ago

#1906 new enhancement

startup sanity checks - out of band

Reported by: jogger Owned by:
Priority: minor Milestone: undecided
Component: router/general Version: 0.9.28
Keywords: startup network Cc:
Parent Tickets: Sensitive: no

Description

most installations are (should be) 24/7 in a well known environment. On restarts i2p should work the same all time, but it does not.

Reason: After crashes, outages, system maintenance and the like i2p may be started before the network or even the local machine is ready to play. Routers may take minutes more to come up, the local machine might not have a battery, so incorrect time etc.

Symptoms: on perfectly configured and tested networks i2p directly starts into network skew or tests ipv6 forever or comes up with introducers.

Proposal 1: basic system check. On startup enter a loop until the following conditions are met: Working network interface, ability to resolve DNS of a well known time server, ability to successfully get time off that server, that time is identical to system time.

Proposal 2: minimum network capabilities. Let user configure what services must be tested to work before starting up. 8 choices for combinations of: ipv4/6, TCP/UDP, in-/outbound. This would avoid restarts (with existing tunnels) when i2p operation is unsatisfactory for the user. Saves time and frustration for beginners. Maximises availability. Would also make the network configuration page cleaner.

Subtickets

Change History (3)

comment:1 Changed 3 years ago by zzz

Status: newinfoneeded_new

Interesting idea. Not sure of the UI or coding implications (or affect on Android). We actually do hang waiting for SNTP results, for perhaps a minute, before giving up. Things usually shake out after a few minutes of uptime, so I'm not sure how important this is.

If you have more specifics on particular cases and how to reproduce them, that would be helpful, as these could be addressed individually (without implementing some big proposal)

comment:2 Changed 3 years ago by jogger

Status: infoneeded_newnew

Reproduce: Take an i2p system w/o battery like RPi2/3 or Odroid behind a consumer type router correctly configured with ipv4/6 not firewalled (powered by ARM dual core 500 MHZ or so). Cold boot both same time, i2p is up several minutes before internet connectivity is stable. i2p will usually not operate perfectly. (hang with network skew, or come up with introducers, testing ipv6 forever)

Easy to see that there is a race condition between local ntpd and i2p regarding time. Maybe proposal 1 is already sufficient to resolve issues.

comment:3 Changed 3 years ago by zzz

Thanks, that helps. If it only takes several minutes to be stable, I'd say that's pretty good. Of course it's very difficult to know for sure if we have a network, but we could definitely do better in detection and recovery.

These are challenging issues without easy solutions…

Note: See TracTickets for help on using tickets.