Author: markt Date: Wed Sep 21 12:08:06 2011 New Revision: 1173582 URL: http://svn.apache.org/viewvc?rev=1173582&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51794 Race condition in NioEndpoint selector
Modified: tomcat/tc6.0.x/trunk/STATUS.txt tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1173582&r1=1173581&r2=1173582&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Wed Sep 21 12:08:06 2011 @@ -76,11 +76,6 @@ PATCHES PROPOSED TO BACKPORT: +1: kkolinko, rjung, fhanik -1: -* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51794 - Race condition in NioEndpoint selector - +1: fhanik, kkolinko, markt - -1 - * Fine grained control of session attribute replication in clusters. Trunk revisions: 1172233, 1172234, 1172236 TC7 revisions: 1172259 Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1173582&r1=1173581&r2=1173582&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Wed Sep 21 12:08:06 2011 @@ -1579,12 +1579,11 @@ public class NioEndpoint { int keyCount = 0; try { if ( !close ) { - if (wakeupCounter.get()>0) { + if (wakeupCounter.getAndSet(-1) > 0) { //if we are here, means we have other stuff to do //do a non blocking select keyCount = selector.selectNow(); - }else { - wakeupCounter.set( -1); + } else { keyCount = selector.select(selectorTimeout); } wakeupCounter.set(0); Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=1173582&r1=1173581&r2=1173582&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Wed Sep 21 12:08:06 2011 @@ -71,6 +71,10 @@ Detect incomplete AJP messages and reject the associated request if one is found. (markt) </fix> + <fix> + <bug>51794</bug>: Fix race condition in NioEndpoint selector. Patch + provided by dlord. (fhanik) + </fix> </changelog> </subsection> <subsection name="Jasper"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org