Opened 8 years ago

Closed 4 years ago

#978 closed defect (wontfix)

Interrupted while write queue was full

Reported by: Zlatin Balevsky Owned by:
Priority: maintenance Milestone:
Component: streaming Version: 0.9.6
Keywords: Cc: Zlatin Balevsky
Parent Tickets: Sensitive: no


May just be race with closing the session, or related to snark

07:13:23:46:41:422 WARN  [D@tIUXbr 232] p.client.streaming.PacketQueue: Unable to send the packet ISL8NA==~sNBYg==: #1391  CLOSE DELAY 0 SIG ACK 268 NACK 266 267 rtt 60000 from 46Ry to MjZz
net.i2p.client.I2PSessionException: Interrupted while write queue was full
        at net.i2p.client.I2PSessionImpl.sendMessage(
        at net.i2p.client.I2CPMessageProducer.sendMessage(
        at net.i2p.client.I2PSessionMuxedImpl.sendNoEffort(
        at net.i2p.client.I2PSessionMuxedImpl.sendMessage(
        at net.i2p.client.streaming.PacketQueue.enqueue(
        at net.i2p.client.streaming.Connection.sendPacket(
        at net.i2p.client.streaming.ConnectionDataReceiver.send(
        at net.i2p.client.streaming.ConnectionDataReceiver.send(
        at net.i2p.client.streaming.ConnectionDataReceiver.writeData(
        at net.i2p.client.streaming.MessageOutputStream.flush(
        at net.i2p.client.streaming.MessageOutputStream.close(
        at org.klomp.snark.PeerConnectionOut.disconnect(
        at org.klomp.snark.Peer.disconnect(
Caused by: java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(
        at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(
        at java.util.concurrent.LinkedBlockingQueue.offer(
        at net.i2p.router.client.I2CPMessageQueueImpl.offer(
        at net.i2p.client.I2PSessionImpl.sendMessage(
        ... 16 more
07:13:23:46:41:423 WARN  [D@tIUXbr 232] p.client.streaming.PacketQueue: Send failed for ISL8NA==~sNBYg==: #1391  CLOSE DELAY 0 SIG ACK 268 NACK 266 267 rtt 60000 from 46Ry to MjZz
07:13:23:57:32:045 WARN  [[I2PSnark]: ] client.streaming.PacketHandler: Received additional packet w/o SendStreamID after the syn on [Connection vtDBrw==/Vgr4Pw== 
from MjZz up 10s wsize: 2 cwin: 2 rtt: 8024 rto: 20224 unacked out: 2 unacked in: 0 sent: 3 rcvd: 2 ackThru 0 maxWin 128 MTU 1730]: AAAAAA==Vgr4Pw==: #0  DELAY 1000 FROM MS 1730 SIG SYN ACK -1


Change History (5)

comment:1 Changed 8 years ago by zzz


comment:2 Changed 7 years ago by zzz

Status: newinfoneeded_new

is this a bug at all? Or is that the way java works, that a nonblocking offer() turns into an interrupt of some other thread that's waiting? I don't really get it.

comment:3 Changed 7 years ago by Zlatin Balevsky

Status: infoneeded_newnew

No, internally the data structures use LockSupport.[un]Park(). Interrupt()-ing is never used in "normal" operation

comment:4 Changed 5 years ago by str4d

Status: newopen

comment:5 Changed 4 years ago by zzz

Resolution: wontfix
Status: openclosed

This is probably due to a tunnel/session shutdown. We may be doing the interrupt() ourselves, i2psnark does have several calls, but it's too hard to track down. The user will never see this as it's a WARN level. Maybe not-a-bug but definitely wont-fix.

Note: See TracTickets for help on using tickets.