On Tue, Jan 22, 2002 at 01:42:30PM -0500, Gianni Johansson wrote:
> We could quickly fix the problem (for future versions) by checking the 
> message String in Pending, and dereferencing nodes that return "Build older 
> than last good build*", but that would be a pretty gross hack.  Otherwise, we 
> could change the protocol to include a reason code in the QueryRejected.

I'm not sure dereferencing is the right way.  We just need to stop
routing to them until fred is restarted.  Associating a transient
property with the node in the RT so that it is always skipped in
isRoutable() would probably be best (and it's simple).

Adding a reason code to the QRej is probably a good idea on general principle.

> This is a real problem, even for the new nodes.  My public node was sending 
> at least 1 obsolete build QR per second last night.

Yes, it does need to be handled better.

> Oskar what is your call? a) quick hack b) change protocol c) do nothing 
> because this problem shouldn't come up that often.
> 
> Why isn't the routing adapting to reduce the number of requests to nodes that 
> don't ever respond?

It takes successful traffic to get references, so it can take a long
time to get enough references to make the routing prefer other nodes,
particularly when it is bad references keeping your node from seeing
successful traffic.

We were also mishandling the setting of the DataSource field in the
StoreData generated by the terminal node (it should have been applying
the 1/20th resetting probability there instead of 100% -- this is fixed
in build 455).  This would tend to exacerbate the formation of ubernodes
which could then turn around and starting QRej'ing constantly due to
overload.

-tc


_______________________________________________
Devl mailing list
Devl at freenetproject.org
http://lists.freenetproject.org/mailman/listinfo/devl

Reply via email to