Go to file
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
all [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
buffer Allow to disable leak detection for all buffers when using UnpooledByteBufAllocator. 2016-04-05 13:17:16 +02:00
codec [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
codec-dns Remove an unused import 2016-04-02 01:39:47 -04:00
codec-haproxy [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
codec-http [#5059] Deprecate method with typo and introduce a new one without typo 2016-04-05 15:06:46 +02:00
codec-http2 [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
codec-memcache [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
codec-mqtt [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
codec-socks [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
codec-stomp [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
codec-xml [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
common Add Log4J2LoggerFactory and Log4J2Logger 2016-04-05 14:01:32 +02:00
example [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
handler ApplicationProtocolNegotiationHandler doesn't work with SniHandler 2016-04-05 09:02:46 +02:00
handler-proxy [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
license added support for Protobuf codec nano runtime 2016-01-19 21:39:17 +01:00
microbench [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
resolver [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
resolver-dns [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
tarball [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
testsuite [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
testsuite-osgi [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
transport NIO/EPOLL readPending set to false incorrectly 2016-04-06 00:09:49 -07:00
transport-native-epoll NIO/EPOLL readPending set to false incorrectly 2016-04-06 00:09:49 -07:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
transport-udt [maven-release-plugin] prepare for next development iteration 2016-04-02 01:25:05 -04:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Add JVM crash logs to .gitignore 2014-05-18 21:36:54 +09:00
.travis.yml Travis CI branch whitelisting 2013-03-11 09:55:43 +09:00
CONTRIBUTING.md Move the pull request guide to the developer guide 2014-03-12 13:13:58 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt added support for Protobuf codec nano runtime 2016-01-19 21:39:17 +01:00
pom.xml Add Log4J2LoggerFactory and Log4J2Logger 2016-04-05 14:01:32 +02:00
README.md Updating Branches to look section to match the current branching structure of the project 2016-03-10 22:08:01 +01:00
run-example.sh Map HTTP/2 Streams to Channels 2016-03-25 12:14:44 -07:00

Netty Project

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

How to build

For the detailed information about building and developing Netty, please visit the developer guide. This page only gives very basic information.

You require the following to build Netty:

Note that this is build-time requirement. JDK 5 (for 3.x) or 6 (for 4.0+) is enough to run your Netty-based application.

Branches to look

Development of all versions takes place in each branch whose name is identical to <majorVersion>.<minorVersion>. For example, the development of 3.9 and 4.0 resides in the branch '3.9' and the branch '4.0' respectively.