tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Thomas <ma...@apache.org>
Subject Re: Unit tests and trunk
Date Wed, 11 Jul 2012 22:28:02 GMT
On 11/07/2012 22:39, Filip Hanik (mailing lists) wrote:
> Ok, I have a resolution to this, it's a IPv6 problem. The reason it worked
> on my virtual machine, is cause the virtual machine doesn't have IPv6
> 
> When I add 
> <jvmarg value="-Djava.net.preferIPv4Stack=true"/>
> 
> To the unit tests, it works fine on Windows.
> 
> Here is what led me to believe in this:
> http://blog.bielu.com/2011/11/hotspot-64bit-server-hangs-on-socket.html

Hmm. It looks like Oracle failed to reproduce the issue - possibly
because the IPv6 part was not clear in the original bug report. Probably
time to raise an issue with Oracle with clearer instructions to
reproduce. (I have a clean Win 7 VM I am happy to trial any test case on
if that helps).

Mark


> 
>> -----Original Message-----
>> From: Filip Hanik (mailing lists) [mailto:devlists@hanik.com]
>> Sent: Wednesday, July 11, 2012 2:54 PM
>> To: 'Tomcat Developers List'
>> Subject: RE: Unit tests and trunk
>>
>> The idea of creating a VM that is like mine was a good one.
>> I did a clean install of Windows 7 64 bit, and it works like a charm.
>> My network stack must have something installed at the network stack
>>
>> Filip
>>
>>> -----Original Message-----
>>> From: Mark Thomas [mailto:markt@apache.org]
>>> Sent: Wednesday, July 11, 2012 1:32 PM
>>> To: Tomcat Developers List
>>> Subject: Re: Unit tests and trunk
>>>
>>> On 11/07/2012 20:13, Filip Hanik (mailing lists) wrote:
>>>>
>>>>
>>>>> -----Original Message-----
>>>>> From: Filip Hanik (mailing lists) [mailto:devlists@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:markt@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-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: dev-help@tomcat.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
> 



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


Mime
View raw message