netty5/transport-native-epoll/src/test/java/io/netty/channel/epoll
Scott Mitchell 441aa4c575 EPOLL ET Missed Reads
Motivation:
bfbef036a8 made EPOLL respect autoRead while in ET mode. However it is possible that we may miss data pending on the RECV queue if autoRead is off. This is because maybeMoreDataToRead is updated after fireChannelRead and if a user calls read() from here maybeMoreDataToRead will be false because it is updated after the fireChannelRead call. The way maybeMoreDataToRead was updated also causes a single channel to continuously read on the event loop and not relinquish and give other channels to try reading.

Modifications:
- Ensure maybeMoreDataToRead is always set after all user events, and is evaluated with readPending to execute a epollInReady on the EventLoop
- Combine the checkResetEpollIn and maybeMoreDataToRead logic to invoke a epollInReady later into the epollInFinally method due to similar responsibilities
- Update unit tests to reflect the user calling read() on the event loop from channelRead()

Result:
EPOLL ET with autoRead set to false will not leave data on the RECV queue.
2016-04-01 13:06:19 -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 EPOLL ET Missed Reads 2016-04-01 13:06:19 -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