tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remy Maucherat <r...@apache.org>
Subject Re: svn commit: r416444 [1/2] - in /tomcat/tc6.0.x/trunk/java/org/apache: coyote/http11/Http11NioProcessor.java coyote/http11/InternalNioInputBuffer.java tomcat/util/net/NioEndpoint.java
Date Thu, 22 Jun 2006 19:37:07 GMT
fhanik@apache.org wrote:
> Author: fhanik
> Date: Thu Jun 22 12:05:02 2006
> New Revision: 416444
> 
> URL: http://svn.apache.org/viewvc?rev=416444&view=rev
> Log:
> Fix so that we don't do a busy read, instead we are properly doing a NIO poller wait
> This way, we can achieve blocking read, without wasting CPU cycles.
> Since we are using Java 5, I will be changing this implementation from using synchronized
to using the Exchanger, this is also to avoid anyi locks that can happen. For example, in
the current implementation the poller can call notify before we have had a chance to call
wait

This is a little bit better (2300 r/s now), but:
- I get some cancelled key exceptions (most likely they could be caught):
22 juin 2006 21:32:38 org.apache.tomcat.util.net.NioEndpoint$Poller events
GRAVE:
java.nio.channels.CancelledKeyException
         at sun.nio.ch.SelectionKeyImpl.ensureValid(Unknown Source)
         at sun.nio.ch.SelectionKeyImpl.interestOps(Unknown Source)
         at 
org.apache.coyote.http11.InternalNioInputBuffer$1.run(InternalNioInputBuffer.java:573)
         at 
org.apache.tomcat.util.net.NioEndpoint$Poller.events(NioEndpoint.java:1120)
         at 
org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1176)
         at java.lang.Thread.run(Unknown Source)
- I get a problem in the poller thread after a while:
Exception in thread "http-8081-Poller-0" java.lang.NullPointerException
         at sun.nio.ch.WindowsSelectorImpl$FdMap.remove(Unknown Source)
         at sun.nio.ch.WindowsSelectorImpl$FdMap.access$3000(Unknown Source)
         at sun.nio.ch.WindowsSelectorImpl.implDereg(Unknown Source)
         at sun.nio.ch.SelectorImpl.processDeregisterQueue(Unknown Source)
         at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
         at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
         at sun.nio.ch.SelectorImpl.select(Unknown Source)
         at 
org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1182)
         at java.lang.Thread.run(Unknown Source)

However, performance without keepalive (no -k) is down.

Rémy

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message