Matthew Toseland wrote:
> What is the stack trace? At what point in PacketSender are we trying to
> send the messages, or is it from somewhere else?
>   
Here's a snippet from a stack trace I got after adding the exception to 
the Logger call:

May 16, 2006 13:50:24:843 (freenet.support.LimitedRangeIntByteArrayMap, 
PacketSender thread for 0, NORMAL): 
freenet.support.LimitedRangeIntByteArrayMap at 3ce43ce4 WOULD BLOCK: 
lockNeverBlock(71368) - minValue = 71240, maxValue = 71240, maxRange=128
May 16, 2006 13:50:24:843 (freenet.node.FNPPacketMangler, PacketSender 
thread for 0, NORMAL): Caught freenet.support.WouldBlockException while 
sending messages, requeueing remaining messages
freenet.support.WouldBlockException
        at java.lang.Throwable.<init>(Throwable.java:57)
        at 
freenet.io.comm.LowLevelFilterException.<init>(LowLevelFilterException.java:10)
        at 
freenet.support.LimitedRangeIntByteArrayMap.lockNeverBlock(LimitedRangeIntByteArrayMap.java:137)
        at 
freenet.node.KeyTracker.allocateOutgoingPacketNumberNeverBlock(KeyTracker.java:664)
        at 
freenet.node.FNPPacketMangler.processOutgoingPreformatted(FNPPacketMangler.java:1021)
        at 
freenet.node.FNPPacketMangler.innerProcessOutgoing(FNPPacketMangler.java:943)
        at 
freenet.node.FNPPacketMangler.processOutgoingOrRequeue(FNPPacketMangler.java:891)
        at freenet.node.PacketSender.realRun(PacketSender.java:151)
        at freenet.node.PacketSender.run(PacketSender.java:42)
        at java.lang.Thread.run(Thread.java:786)
May 16, 2006 13:50:24:844 (freenet.node.PeerNode, PacketSender thread 
for 0, NORMAL): Requeueing 83 messages on 
freenet.node.PeerNode@[same_snipped_peer]
May 16, 2006 13:50:24:852 (freenet.support.LimitedRangeIntByteArrayMap, 
PacketSender thread for 0, NORMAL): 
freenet.support.LimitedRangeIntByteArrayMap at 3ce43ce4 WOULD BLOCK: 
lockNeverBlock(71368) - minValue = 71240, maxValue = 71240, maxRange=128
May 16, 2006 13:50:24:852 (freenet.node.FNPPacketMangler, PacketSender 
thread for 0, NORMAL): Caught freenet.support.WouldBlockException while 
sending messages, requeueing remaining messages
freenet.support.WouldBlockException
        at java.lang.Throwable.<init>(Throwable.java:57)
        at 
freenet.io.comm.LowLevelFilterException.<init>(LowLevelFilterException.java:10)
        at 
freenet.support.LimitedRangeIntByteArrayMap.lockNeverBlock(LimitedRangeIntByteArrayMap.java:137)
        at 
freenet.node.KeyTracker.allocateOutgoingPacketNumberNeverBlock(KeyTracker.java:664)
        at 
freenet.node.FNPPacketMangler.processOutgoingPreformatted(FNPPacketMangler.java:1021)
        at 
freenet.node.FNPPacketMangler.innerProcessOutgoing(FNPPacketMangler.java:943)
        at 
freenet.node.FNPPacketMangler.processOutgoingOrRequeue(FNPPacketMangler.java:891)
        at freenet.node.PacketSender.realRun(PacketSender.java:151)
        at freenet.node.PacketSender.run(PacketSender.java:42)
        at java.lang.Thread.run(Thread.java:786)
May 16, 2006 13:50:24:854 (freenet.node.PeerNode, PacketSender thread 
for 0, NORMAL): Requeueing 83 messages on 
freenet.node.PeerNode@[same_snipped_peer]

> On Mon, May 15, 2006 at 04:23:05PM -0500, David Sowder (Zothar) wrote:
>   
>> Matthew Toseland wrote:
>>     
>>> Check the stack trace. WouldBlockException is thrown when a peer is so
>>> backlogged that we can't allocate a new packet number. So we requeue the
>>> messages we need to send, since we have pulled them off the queue in
>>> order to send them, and we can't send them yet.=
>>>  
>>>       
>> OK, it seems I did understand what's going on and apparently there's not 
>> bigger cause than the peer is backlogged, so it looks like I didn't miss 
>> anything (which is good).
>>
>> What do you think of the waiting between queued message send retry 
>> attempts idea?
>>
>>     
>>> On Sun, May 14, 2006 at 01:32:27PM -0500, David Sowder (Zothar) wrote:
>>>  
>>>       
>>>> Perhaps we should wait a little bit before trying to resend queued 
>>>> messages?  Perhaps the wait time should be proportional to the number of 
>>>> messages queued, up to some threshold (maybe keepalive send frequency)?
>>>>
>>>> According to the source:
>>>>
>>>>   public void requeueMessageItems(MessageItem[] messages, int offset, 
>>>> int length, boolean dontLog) {
>>>>       // Will usually indicate serious problems
>>>>
>>>> What could cause this?  Failure to get acks from a peer for awhile?
>>>>
>>>>
>>>>
>>>> May 14, 2006 17:54:59:874 (freenet.support.LimitedRangeIntByteArrayMap, 
>>>> PacketSender thread for 0, NORMAL): 
>>>> freenet.support.LimitedRangeIntByteArrayMap at 1e64cca WOULD BLOCK: 
>>>> lockNeverBlock(47574) - minValue = 47446, maxValue = 47446, maxRange=128
>>>> May 14, 2006 17:54:59:874 (freenet.node.FNPPacketMangler, PacketSender 
>>>> thread for 0, NORMAL): Caught freenet.support.WouldBlockException while 
>>>> sending messages, requeueing remaining messages
>>>>         

Reply via email to