> 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

Reply via email to