netty5/transport-native-epoll/src/test/java/io/netty/channel/epoll
Scott Mitchell 9fb86a380d NIO/EPOLL readPending set to false incorrectly
Motivation:
441aa4c575 introduced a bug in transport-native-epoll where readPending is set to false before a read is attempted, but this should happen before fireChannelRead is called. The NIO transport also only sets the readPending variable to false on the first read in the event loop. This means that if the user only calls read() on the first channelRead(..) the select loop will still listen for read events even if the user does not call read() on subsequent channelRead() or channelReadComplete() in the same event loop run. If the user only needs 2 channelRead() calls then by default they will may get 14 more channelRead() calls in the current event loop, and then 16 more when the event loop is woken up for a read event. This will also read data off the TCP stack and allow the peer to queue more data in the local RECV buffers.

Modifications:
- readPending should be set to false before each call to channelRead()
- make NIO readPending set to false consistent with EPOLL

Result:
NIO and EPOLL transport set readPending to false at correct times which don't read more data than intended by the user.
Fixes https://github.com/netty/netty/issues/5082
2016-04-06 00:09:49 -07:00
..
EpollAbstractDomainSocketEchoTest.java Add support for abstract domain sockets 2015-08-16 20:03:23 +02:00
EpollChannelConfigTest.java Use ChannelException when ChannelConfig operation fails in epoll. 2015-08-28 21:38:35 +02:00
EpollDatagramUnicastTest.java [#2377] Implement epoll based DatagramChannel 2014-04-16 15:05:43 +02:00
EpollDomainSocketEchoTest.java Add support for Unix Domain Sockets when using native epoll transport 2015-02-04 15:39:41 +01:00
EpollDomainSocketFdTest.java [#3457] Proper fix for IllegalStateException caused by closed file descriptor / channel 2015-03-01 19:41:09 +01:00
EpollDomainSocketFileRegionTest.java Add support for Unix Domain Sockets when using native epoll transport 2015-02-04 15:39:41 +01:00
EpollDomainSocketFixedLengthEchoTest.java Add support for Unix Domain Sockets when using native epoll transport 2015-02-04 15:39:41 +01:00
EpollDomainSocketGatheringWriteTest.java Add support for Unix Domain Sockets when using native epoll transport 2015-02-04 15:39:41 +01:00
EpollDomainSocketObjectEchoTest.java Add support for Unix Domain Sockets when using native epoll transport 2015-02-04 15:39:41 +01:00
EpollDomainSocketSslEchoTest.java Add support for Unix Domain Sockets when using native epoll transport 2015-02-04 15:39:41 +01:00
EpollDomainSocketSslGreetingTest.java Add support for Unix Domain Sockets when using native epoll transport 2015-02-04 15:39:41 +01:00
EpollDomainSocketStartTlsTest.java Add support for Unix Domain Sockets when using native epoll transport 2015-02-04 15:39:41 +01:00
EpollDomainSocketStringEchoTest.java Add support for Unix Domain Sockets when using native epoll transport 2015-02-04 15:39:41 +01:00
EpollReuseAddrTest.java Native EPOLL Library Allows Shading 2016-02-03 14:40:28 -08:00
EpollServerSocketChannelConfigTest.java Fix EpollServerSocketConfig.isFreebind() 2016-03-14 12:12:41 +01:00
EpollSocketChannelConfigTest.java ChannelConfig operations should wrap ClosedChannelException if Channel was closed before. 2016-03-15 14:47:39 +01:00
EpollSocketChannelTest.java NIO/EPOLL readPending set to false incorrectly 2016-04-06 00:09:49 -07:00
EpollSocketConnectionAttemptTest.java [#3785] Correctly handle connection refused with native transport 2015-05-27 13:38:50 +02:00
EpollSocketEchoTest.java Perform cross-tests between NIO and epoll transport 2014-03-17 10:35:48 +09:00
EpollSocketFileRegionTest.java Perform cross-tests between NIO and epoll transport 2014-03-17 10:35:48 +09:00
EpollSocketFixedLengthEchoTest.java Perform cross-tests between NIO and epoll transport 2014-03-17 10:35:48 +09:00
EpollSocketGatheringWriteTest.java Perform cross-tests between NIO and epoll transport 2014-03-17 10:35:48 +09:00
EpollSocketObjectEchoTest.java Perform cross-tests between NIO and epoll transport 2014-03-17 10:35:48 +09:00
EpollSocketRstTest.java EPOLL SO_LINGER=0 sends FIN+RST 2016-03-16 22:35:04 -07:00
EpollSocketSslEchoTest.java Test TLS renegotiation with explicit cipher suite change 2014-12-12 17:49:16 +09:00
EpollSocketSslGreetingTest.java Add an OpenSslEngine and the universal API for enabling SSL 2014-05-18 02:54:06 +09:00
EpollSocketStartTlsTest.java Add an OpenSslEngine and the universal API for enabling SSL 2014-05-18 02:54:06 +09:00
EpollSocketStringEchoTest.java Perform cross-tests between NIO and epoll transport 2014-03-17 10:35:48 +09:00
EpollSocketTcpMd5Test.java Use smaller connect timeout to speed up tests. 2016-03-06 17:47:38 +01:00
EpollSocketTestPermutation.java Add support for RFC7413 on linux for server sockets 2015-09-09 06:58:08 +02:00
EpollSpliceTest.java Add support for splice(...) 2015-04-30 07:10:46 +02:00
EpollTest.java [#2598] Add Epoll.isAvailable() which allows to check if epoll can be used. 2014-06-26 12:27:09 +02:00
NativeTest.java Decouple Unix from Linux in Native Transport 2015-11-02 12:29:44 -08:00