Opened 6 years ago

Closed 5 years ago

#1161 closed defect (fixed)

Streaming exception: Wrong stream

Reported by: dg Owned by:
Priority: minor Milestone: 0.9.12
Component: streaming Version: 0.9.9
Keywords: Cc:
Parent Tickets: Sensitive: no

Description

Reported to zzz earlier. He wasn't sure what it is.

04/01/14 10:02:48 ↓↓↓ 1 similar message omitted ↓↓↓
04/01/14 10:02:39 ERROR [REMOVED]: ] client.streaming.PacketHandler: Received a packet on the wrong stream: REMOVED/REMOVED: #2 ACK 0 CLOSE DELAY 0 SIG
     this connection:
     [Connection REMOVED/REMOVED to REMOVED up 39s wsize: 3 cwin: 2 rtt: 12284 rto: 45000 unacked out: 0 unacked in: 0 sent: 8 rcvd: 9 ackThru 7 maxWin 16 MTU 1730]
     all connections:
     [Connection REMOVED/REMOVED to REMOVED up 39m wsize: 2 cwin: 2 rtt: 1305 rto: 2000 unacked out: 0 unacked in: 0 close sent 12s ago sent: 35 rcvd: 24 ackThru 34 maxWin 16 MTU 1730]
     [Connection REMOVED/REMOVED to REMOVED up 39s wsize: 3 cwin: 2 rtt: 12284 rto: 45000 unacked out: 0 unacked in: 0 sent: 8 rcvd: 9 ackThru 7 maxWin 16 MTU 1730]
     java.lang.Exception: Wrong stream
     at net.i2p.client.streaming.PacketHandler.receiveKnownCon(PacketHandler.java:219)
     at net.i2p.client.streaming.PacketHandler.receivePacketDirect(PacketHandler.java:104)
     at net.i2p.client.streaming.PacketHandler.receivePacket(PacketHandler.java:91)
     at net.i2p.client.streaming.MessageHandler.messageAvailable(MessageHandler.java:67)
     at net.i2p.client.I2PSessionDemultiplexer.messageAvailable(I2PSessionDemultiplexer.java:39)
     at net.i2p.client.I2PSessionMuxedImpl$MuxedAvailabilityNotifier.run(I2PSessionMuxedImpl.java:352)
     at java.lang.Thread.run(Thread.java:724)
     at net.i2p.util.I2PThread.run(I2PThread.java:84)

Subtickets

Change History (4)

comment:1 Changed 5 years ago by zzz

Milestone: 0.9.100.9.13

Also reported at http://pastethis.i2p/show/il6RrbRBDekoh0fNjJWO/

Theory:

Alice is retransmitting SYN packets.
Bob receives one, assigns a random stream ID, and responds.
Connection then gets closed and Bob forgets about it but Alice has not forgotten yet.
Bob then receives the dup SYN but thinks it's a new connection, and assigns a new random Stream ID.
Alice then receives a different stream ID for Bob on the same connection, and logs the error.

comment:2 Changed 5 years ago by zzz

In 0.9.11-17 51b8f65283459cbb45968af8acf6261f555c801f

Very rare and the theory above may not be correct, not sure if fixed, so leaving open for testing.

comment:3 Changed 5 years ago by zzz

Milestone: 0.9.130.9.12

see also #983. Hopefully fixed in 0.9.12.

comment:4 Changed 5 years ago by zzz

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.