No more relp connections can be opened once thrown as offer frame is never sent
15.05.2024 10:31:23.403 [DEBUG] [com.teragrep.rlp_03.eventloop.EventLoop] [Thread-0] readyKeys <1>
15.05.2024 10:31:23.404 [DEBUG] [com.teragrep.rlp_03.eventloop.EventLoop] [Thread-0] selectionKeys <[channel=sun.nio.ch.ServerSocketChannelImpl[/[0:0:0:0:0:0:0:0]:1601], selector=sun.nio.ch.EPollSelectorImpl@4e5ce127, interestOps=16, readyOps=16]>
15.05.2024 10:31:23.404 [DEBUG] [com.teragrep.rlp_03.eventloop.EventLoop] [Thread-0] selectionKey <channel=sun.nio.ch.ServerSocketChannelImpl[/[0:0:0:0:0:0:0:0]:1601], selector=sun.nio.ch.EPollSelectorImpl@4e5ce127, interestOps=16, readyOps=16>: isValid <true>, isConnectable <false>, isAcceptable <true>, isReadable <false>, isWritable <false>
15.05.2024 10:31:23.404 [DEBUG] [com.teragrep.rlp_03.channel.context.ListenContext] [Thread-0] ServerSocket </[0:0:0:0:0:0:0:0]:1601> accepting ClientSocket </127.0.0.1:60502>
15.05.2024 10:31:23.404 [DEBUG] [com.teragrep.rlp_03.eventloop.EventLoop] [Thread-0] readyKeys <1>
15.05.2024 10:31:23.404 [DEBUG] [com.teragrep.rlp_03.eventloop.EventLoop] [Thread-0] selectionKeys <[channel=java.nio.channels.SocketChannel[connected local=/127.0.0.1:1601 remote=/127.0.0.1:60502], selector=sun.nio.ch.EPollSelectorImpl@4e5ce127, interestOps=1, readyOps=1]>
15.05.2024 10:31:23.404 [DEBUG] [com.teragrep.rlp_03.eventloop.EventLoop] [Thread-0] selectionKey <channel=java.nio.channels.SocketChannel[connected local=/127.0.0.1:1601 remote=/127.0.0.1:60502], selector=sun.nio.ch.EPollSelectorImpl@4e5ce127, interestOps=1, readyOps=1>: isValid <true>, isConnectable <false>, isAcceptable <false>, isReadable <true>, isWritable <false>
15.05.2024 10:31:23.404 [DEBUG] [com.teragrep.rlp_03.channel.context.EstablishedContextImpl] [Thread-0] handleEvent taking read
15.05.2024 10:31:23.404 [DEBUG] [com.teragrep.rlp_03.channel.context.InterestOpsImpl] [Thread-0] Removing op <1> from currentOps <0>, newOps <0>, keyOps <1>, validOps <13>
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.context.InterestOpsImpl] [Thread-0] Removed op <1>, currentOps <0>, keyOps <0>, validOps <13>
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.context.EstablishedContextImpl] [Thread-0] handleEvent submitting new runnable for read
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.context.EstablishedContextImpl] [Thread-0] handleEvent exiting read
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.context.RelpReadImpl] [pool-1-thread-1] run entry!
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.eventloop.EventLoop] [Thread-0] readyKeys <0>
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.context.RelpReadImpl] [pool-1-thread-1] run lock! with activeBuffers.size() <0>
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.eventloop.EventLoop] [Thread-0] selectionKeys <[]>
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.context.RelpReadImpl] [pool-1-thread-1] run loop start
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.buffer.BufferLeasePool] [pool-1-thread-1] requesting take with size <4>
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.buffer.BufferLeasePool] [pool-1-thread-1] returning bufferLease id <1> with refs <1> at buffer position <0>
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.buffer.BufferContainerImpl] [pool-1-thread-1] id <1>
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.context.RelpReadImpl] [pool-1-thread-1] establishedContext.read got <97> bytes from socket
15.05.2024 10:31:23.405 [DEBUG] [com.teragrep.rlp_03.channel.context.RelpReadImpl] [pool-1-thread-1] submitting buffer <com.teragrep.rlp_03.channel.buffer.BufferLeaseImpl@4f06e867> from activeBuffers <[]> to relpFrame
15.05.2024 10:31:23.406 [TRACE] [com.teragrep.rlp_03.channel.context.RelpReadImpl] [pool-1-thread-1] received relpFrame <[RelpFrameLeaseful{relpFrame=RelpFrameImpl{txn=1, command=open, payloadLength=86, payload=relp_version=0
relp_software=librelp,1.10.0,http://librelp.adiscon.com
commands=syslog, endOfTransfer=
}, leaseSet=REMOVED}]>
15.05.2024 10:31:23.406 [DEBUG] [com.teragrep.rlp_03.channel.context.RelpReadImpl] [pool-1-thread-1] frame complete, activeBuffers <[]>
15.05.2024 10:31:23.406 [ERROR] [com.teragrep.rlp_03.channel.context.RelpReadImpl] [pool-1-thread-1] run() threw java.lang.IllegalArgumentException: frame txn not sequencing
at com.teragrep.rlp_03.frame.delegate.SequencingDelegate.accept(SequencingDelegate.java:85)
at com.teragrep.rlp_03.frame.delegate.DefaultFrameDelegate.accept(DefaultFrameDelegate.java:77)
at com.teragrep.rlp_03.channel.context.RelpReadImpl.processFrame(RelpReadImpl.java:234)
at com.teragrep.rlp_03.channel.context.RelpReadImpl.run(RelpReadImpl.java:147)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Expected behavior
Recovers and continues normally
How to reproduce
Cause SequencingDelegate to throw
java.lang.IllegalArgumentException: Frame txn not sequencing
at com.teragrep.rlp_03.frame.delegate.SequencingDelegate.accept(SequencingDelegate.java:85)
at com.teragrep.rlp_03.frame.delegate.DefaultFrameDelegate.accept(DefaultFrameDelegate.java:77)
Easy nc command to trigger it with negative txn id
Describe the bug
While investigating #168 I noticed that the test never stops
First connection is just fine
No more relp connections can be opened once thrown as offer frame is never sent
Expected behavior
Recovers and continues normally
How to reproduce
Cause SequencingDelegate to throw
Easy nc command to trigger it with negative txn id
Software version
rlp_03 7.0.2
Additional context
168