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
