In message <[EMAIL PROTECTED]>,
"Mark Hindess" writes:
>
> When running 
> org.apache.harmony.luni.tests...protocol.http.HttpURLConnectionTest
> I am seeing a hang in testConnectionPersistence method on linux
> (x86-64 and x86).
> [snip]

Ok.  It looks like there is a problem with the selectRead implementation on
unix.  The use of this function in:

  Java_org_apache_harmony_luni_platform_OSNetworkSystem_readDirect

compares the result of the selectRead call using portlib constants.  This
is valid for the windows implementation of selectRead - because it uses
hysock_select.  However, the unix implementation uses poll which is returning:

  On success, a positive number is returned; [snip].  A value of 0
  indicates that the call timed out and no file descriptors were ready.
  On error, -1 is returned, and errno is set appropriately.

I think the fix is:

1) Check for other uses of selectRead and make sure they all use portlib 
constants.

2) Fix selectRead on unix to map the poll return codes to portlib constants.

I'll take a look at doing this.  Shout if you don't think this is a good
approach.

-Mark.


Reply via email to