Opened 6 years ago
Closed 3 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 |
Description
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(I2PSessionImpl.java:716) at net.i2p.client.I2CPMessageProducer.sendMessage(I2CPMessageProducer.java:183) at net.i2p.client.I2PSessionMuxedImpl.sendNoEffort(I2PSessionMuxedImpl.java:266) at net.i2p.client.I2PSessionMuxedImpl.sendMessage(I2PSessionMuxedImpl.java:252) at net.i2p.client.streaming.PacketQueue.enqueue(PacketQueue.java:127) at net.i2p.client.streaming.Connection.sendPacket(Connection.java:383) at net.i2p.client.streaming.ConnectionDataReceiver.send(ConnectionDataReceiver.java:132) at net.i2p.client.streaming.ConnectionDataReceiver.send(ConnectionDataReceiver.java:117) at net.i2p.client.streaming.ConnectionDataReceiver.writeData(ConnectionDataReceiver.java:93) at net.i2p.client.streaming.MessageOutputStream.flush(MessageOutputStream.java:328) at net.i2p.client.streaming.MessageOutputStream.close(MessageOutputStream.java:389) at java.io.FilterOutputStream.close(FilterOutputStream.java:143) at org.klomp.snark.PeerConnectionOut.disconnect(PeerConnectionOut.java:222) at org.klomp.snark.Peer.disconnect(Peer.java:481) at org.klomp.snark.PeerConnectionOut.run(PeerConnectionOut.java:202) at java.lang.Thread.run(Thread.java:680) at net.i2p.util.I2PThread.run(I2PThread.java:85) Caused by: java.lang.InterruptedException at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(AbstractQueuedSynchronizer.java:1199) at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantLock.java:312) at java.util.concurrent.LinkedBlockingQueue.offer(LinkedBlockingQueue.java:336) at net.i2p.router.client.I2CPMessageQueueImpl.offer(I2CPMessageQueueImpl.java:43) at net.i2p.client.I2PSessionImpl.sendMessage(I2PSessionImpl.java:713) ... 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
Subtickets
Change History (5)
comment:1 Changed 6 years ago by
comment:2 Changed 6 years ago by
Status: | new → infoneeded_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 6 years ago by
Status: | infoneeded_new → new |
---|
No, internally the data structures use LockSupport.[un]Park(). Interrupt()-ing is never used in "normal" operation
comment:4 Changed 4 years ago by
Status: | new → open |
---|
comment:5 Changed 3 years ago by
Resolution: | → wontfix |
---|---|
Status: | open → closed |
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.
Interesting…