On Mar 14, 2008, at 9:45 AM, Matthew Toseland wrote:
> Since we introduced packet priorities, transfer failures have
> replaced lost
> messages as the main cause of large numbers of error messages in
> freenet
> logs. I have tried to investigate this: Firstly, I have set up some
> simulations in an attempt to reproduce any bugs which cause this
> (RealNodeBusyNetworkTest). So far, I only see transfer failures when
> the CPU
> is saturated. Secondly, I have added a new statistic for the
> proportion of
> transfers which succeed. On my node this seems to be consistently
> >90%.
> Therefore, it seems reasonable to abandon the chase for the time
> being, and
> demote the timeout messages to NORMAL?
Ok... this is expected given the code for r18410.
On Mar 7, 2008, at 9:18 AM, toad at freenetproject.org wrote:
> Modified: trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
> ===================================================================
> --- trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
> 2008-03-07 13:29:54 UTC (rev 18409)
> +++ trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
> 2008-03-07 15:18:04 UTC (rev 18410)
> @@ -97,7 +97,7 @@
> }
> int totalPackets;
> try {
> - _destination.sendThrottledMessage(DMT.createPacketTransmit(_uid,
> packetNo, _sentPackets, _prb.getPacket(packetNo)), _prb._packetSize,
> _ctr);
> + _destination.sendThrottledMessage(DMT.createPacketTransmit(_uid,
> packetNo, _sentPackets, _prb.getPacket(packetNo)), _prb._packetSize,
> _ctr, SEND_TIMEOUT);
> if(_ctr != null) _ctr.sentPayload(_prb._packetSize);
> totalPackets=_prb.getNumPackets();
> } catch (NotConnectedException e) {
> @@ -108,6 +108,12 @@
> Logger.normal(this, "Terminating send due to abort: "+e);
> //the send() thread should notice...
> return;
> +} catch (WaitedTooLongException e) {
> + Logger.normal(this, "Waited too long to send packet, aborting");
> + synchronized(_senderThread) {
> + _sendComplete = true;
> + }
> + return;
If sending the block transfer would timeout, WaitedTooLongException is
thrown (although a misnomer as it is before the wait...); and the
receiver is never notified. This would imply that some links are too
slow to transfer the average number of blocks even if the node(s)
themselves are not overloaded.
--
Robert Hailey
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<https://emu.freenetproject.org/pipermail/devl/attachments/20080314/02fe28e9/attachment.html>