Freenet 0.7.5 build 1358 is now available. It will be mandatory on Monday, so please upgrade ASAP; let me know if the auto-update has any problems. This build includes a huge number of bug fixes, mostly to low level code, most of which is the result of debugging on the new testnet - so thanks to all who have run testnet nodes! Most of the fixes are aimed at preventing timeouts of various kinds. This should improve performance, particularly by avoiding bogus fatal timeouts, hopefully greatly reducing the number of fatal timeouts. The next build should disconnect/drop opennet peers (strangers) on seeing a fatal timeout. This is an essential requirement before we deploy new load management, which should be relatively soon.
A major side issue is the "all my peers backoff when I browse freesites" bug. This may or may not have been fixed. I have tried it out on testnet, which has all the new code, and it still seems that most realtime transfers (i.e. for fproxy) fail, but it looks like this is largely due to packet loss so it might just be my connection. Once 1358 is mandatory, or at least widespread (give it a couple of days), I will need feedback on whether we still see mass backoff and low realtime transfer success rates when browsing freesites. So please get me that information if you can, thanks! Also, if you have any problems, please let me know; bug reports are always helpful. You can contact me via email, IRC, FMS or Freetalk. Immediately user visible: (at least for some users) - Warn the user about clock skew, and partially compensate for it: If your clock regularly gets rewound (goes backwards), this can cause big problems for Freenet. Please avoid this by installing ntpd and turning off any system timekeeping that involves sudden jumps. - Show an error message when the user tries to insert a file without specifying the key type, or add a friend without specifying the trust level. Don't set a default in most cases. - Tidy up the Upload a File page slightly. - German translation update. - Add ARM support to architecture detection. - Improve statistics slightly (split CHK timings into bulk i.e. downloads vs realtime i.e. fproxy) - A client layer fix for inserts on very small networks. - Some minor fixes to the Windows and Java (Mac/Linux) installers, including the spaces in the filename bug. Internal stuff that should make a big difference when it is deployed across the network, mostly focused on preventing bogus fatal timeouts: - A timeout happens when we send a request to a peer, and don't get a response within the expected time. Or when we start a transfer of some data, and between one block and the next it takes much longer than expected so we give up on the transfer. - After a normal timeout, we move on to the next node, but at the same time we wait for a longer period to see whether the expected response comes through anyway (this is called "two stage timeout"). If it doesn't, this is a fatal timeout. The problem is we don't know whether the request is running or not. Usually if there is a severe connectivity problem the node will have disconnected by this point. New load management requires we disconnect on a fatal timeout, if we can't resolve it. We currently disconnect on a fatal timeout from friends but not strangers; we will disconnect from strangers on a fatal timeout soon. - Fix a nasty bug (race condition) causing us to miss messages sometimes when waiting for them in many different places. - Various changes to congestion control code, which should amongst other things prevent prejudice against large messages (e.g. block transfers) causing timeouts. - Fix message queueing problems including a bug causing long delays sometimes; this would result in timeouts. Fix related issues resulting in messages not being sent in the correct order (fairness between different transfers), mostly because of not checking whether we can send stuff until after we have pulled it off the queue. - Improvements to TCP-like retransmit behaviour. - Implement keepalive packets even on new packet format. Work around a bug in 1356 where it would not send any messages and would then disconnect because it didn't see any acks. Disconnect more quickly after not seeing any acks. - Lots of timeout fixes in inserts and requests (at the node level), including waiting for messages to be sent before waiting for the reply, priority issues, two-stage timeouts, various others. - Decide whether to accept requests on a separate, dedicated thread, not on the one receiving the packets. This decision can involve disk access so can take unreasonable amounts of time if the computer is heavily loaded. - Timeout infrastructure, we may eventually implement a probing mechanism if fatal timeouts continue to be an issue (doesn't actually change behaviour yet). - Make requests use slightly fewer threads by running the get-offered-keys stage asynchronously. This happens when we have fetched a key before, and failed, and then a node tells us it has the key, and we fetch it. Credits: Juiceman SebastianWeetabix sweetie toad xor
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Support mailing list Support@freenetproject.org http://news.gmane.org/gmane.network.freenet.support Unsubscribe at http://emu.freenetproject.org/cgi-bin/mailman/listinfo/support Or mailto:support-requ...@freenetproject.org?subject=unsubscribe