On 11/07/2012 20:13, Filip Hanik (mailing lists) wrote:
> 
> 
>> -----Original Message-----
>> From: Filip Hanik (mailing lists) [mailto:devli...@hanik.com]
>> Sent: Wednesday, July 11, 2012 10:13 AM
>> To: 'Tomcat Developers List'
>> Subject: RE: Unit tests and trunk
>>
>>
>>
>>> -----Original Message-----
>>> From: Mark Thomas [mailto:ma...@apache.org]
>>> Sent: Wednesday, July 11, 2012 2:45 AM
>>> To: Tomcat Developers List
>>> Subject: Re: Unit tests and trunk
>>>
>>> On 11/07/2012 02:27, Filip Hanik (mailing lists) wrote:
>>>> Here's what I've found out so far
>>>>
>>>> The patch below does solve the problem. In a rather remarkable way.
>>>> The line
>>>> int cnt = socket.write(buf); //write the data
>>>>
>>>> never returns 0, meaning the writes are always blocking. Even though
>>> they
>>>> are not supposed to be.
>>>> Remove this patch, and socket.write(buf) returns 0, and then we
>> never
>>> get
>>>> issued the OP_WRITE from the selector itself.
>>>
>>> I'm not sure I follow the above. Remove the patch and it returns 0?
>> [Filip Hanik]
>> Correct, as it should. The buffer should fill up very quick, and when
>> the
>> buffer is full NIO returns 0, can't write.
>> So there are two problems:
>> a) The selector doesn't work the same in Java 7 as it does in Java 5 and
>> 6
>> b) Starting a new selector turns non blocking writes into blocking, even
>> when I write 10MB in the TestOutputBuffer test, there is not a single
>> socket.write that returns 0. Removing the Selector.open call, and
>> immediately we have a hit return 0 as expected.
>>
>>
>>>
>>> Regardless, it seems very strange that the patch below fixes it. I had
>> a
>>> quick look through the Java source and couldn't see anything
>> immediately
>>> obvious. Any ideas what is going on?
>> [Filip Hanik]
>> Can't think of anything but a bug in the JDK. I'll keep investigating.
>> Possibly we have to move the async NIO stuff to get it to work
> [Filip Hanik] 
> Btw, this affects the BIO connector too. The write blocks and hangs forever.
> Maybe it's just my Windows 7 system. Works fine on linux.

Let me see if I can find (or create if necessary) a clean-ish Windows 7
VM to test this on.

Mark

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

Reply via email to