tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Hanik - Dev Lists <devli...@hanik.com>
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 20:19:50 GMT
basically what is happening is that the connection is "keep-alive" so it 
goes back and register itself for more read,
read return -1, which is end of stream, and it re-register itself. I 
will make it throw an exception to end the loop

Filip


Filip Hanik - Dev Lists wrote:
> Thanks for the help on this.
> I am now catching those exceptions, I have the correct speed, but 
> after the test is done, the poller is going ape-sh#@ and takes 100% of 
> cpu, making future tests really slow.
> I need to figure out why it isn't letting go of the connections
>
> Filip
>
> Remy Maucherat wrote:
>> 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
>>
>>
>
>


-- 


Filip Hanik

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


Mime
View raw message