> Here's a recipe for failure: > > 1) Start up node while no internet connection is present > 2) Then, start up internet connection > 3) Try to retrieve something from node - you won't get it - node will fail. > > It seems that when the node starts up, if it can't hit inform.php, and > connect to other nodes, it goes into some kind of autistic state. It appears > that it never re-tries. The only solution I ever found was to restart the > node. > > But, if these steps occur: > 1) Open up internet connection > 2) Start up node > 3) Shut down internet connection > 4) Re-start internet connection, > > the node seems to be able to handle this, and insert and request keys ok
***************************** Then this is therefore a bug in the node. And must be fixed. ****************************** Because here is another recipe for failure: 1) Open up internet connection 2) Start up freenet node 3) Freenet.exe discovers that internet connection has died of its own accord 4) Freenet.exe thinks "Oh well, that's ok, cos we already started the node" and thinks no more of it. 5) Node collapses because it happens to try inform.php after internet connection has died 6) Freenet.exe thinks node is fine, because freenet.exe launched the node during a period in which it determined the internet connection was active 7) Try to retrieve something from node - you still won't get it. And the only solution to this situation is to give freenet.exe the power to stop and start the node as and when the internet connection appears and disappears. Very vulnerable to false positives in the case where the mechanism fails (e.g. a ping to a known address takes an extra long time so freenet.exe inadvertantly determines the network connection must be down and so it chooses to kill the node). I would like to see this fixed in the node itself. > As for your question about searching for java before trying internet > connection - that could be good, as long as you put up a dialog giving the > user the choice. For instance, "I can't find java in the system registry - > do you want me to scan your disk for a copy of java, or would you prefer to > download one from the net." Yeh, reasonable suggestion. > if (user chooses to download java) > { > if (internet connection is active) No, as I have said before, a lot of Windows systems are set up to 'autodial' an ISP. Many windows users therefore simply don't know HOW to activate an internet connection. They just try and access the internet. If it's connected, it works, if it isn't, the system tries to connect. So we cannot reasonably perform this check here. The best we can do (until I can think of an alternative) is to prompt the user that "The installer is about to bring up a URL in a web browser. If you need to dial in to an ISP you should do this now and click OK after a connection has been made" > delete freenet project directory (except perhaps freenet.ini); What about "install-over" support? What about any files that the user may have happened to place in the same directory? Genuinely, at this point in the install process, we shouldn't have added ANY new files to the freenet project directory yet (except any temporary tools, e.g. cfgclient/cfgnode/whatever it's called, which we CAN safely delete) Dave > ----- Original Message ----- > From: "Dave Hooper" <dave at beermex.com> > Subject: Node startup requirements? (was Re: Test Report - Winstaller > 0.3.9.2pre) > > > > <CONTEXT> > > > * First, check that an active internet > > > connection exists. If it doesn't exist, > > > then flash the tray icon, with the ALT > > > text "Please open an internet > > > connection". Freenet.exe should enter a > > > state - WAITING_FOR_INTERNET_CONNECTION > > > * check every 2 seconds for a connection > > > * When a connection comes up, then and > > > only then, launch the node. > > > * Once node is launched successfully, I'd advise > > > that you invisibly send a request to fproxy > > > (directly with sockets), to > > > ensure that you can load the gateway > > > page. > > > * If you can't get the gateway page in > > > this way, then flash the tray icon, with > > > the ALT text "cannot load gateway page". > > > * Every 30 seconds, check if user is still > > > connected to net. If not, then go into > > > the WAITING_FOR_INTERNET_CONNECTION state > > </CONTEXT> > > > > Hmmm... are you really sure that you'd rather see the node only started if > > an internet connection is present? > > > > Conversely, does this imply that you want to see freenet.exe physically > stop > > the node if it (freenet.exe) decides that the internet connection has gone > > down? > > > > Or is it simply that the freenet node has bugs that require an active > > internet connection on _startup_ but that the connection can waver in and > > out of existence after that? > > > > If the later then we have an unsafe hazard which will also imply that we > > physically stop the node > > (i.e. Internet connection appears active, we start the node, node is > > 'starting' but then we notice that the internet connection has died. If > the > > node has a must-have-active-internet-on-startup bug then we cannot know if > > the node has completed its startup procedures before the internet > connection > > died. If we leave it running it might be zombied in the sense that it > > cannot do any useful work.) > > > > > > My point? I don't like the idea of stopping / starting the node in > response > > to our measurements of internet availability. I'd rather see the node > > incorporate retry mechanisms for this sort of thing. > > > > Dave > > > > _______________________________________________ Devl mailing list Devl at freenetproject.org http://lists.freenetproject.org/mailman/listinfo/devl