Review request for 6772303 (original) (raw)
Alan Bateman Alan.Bateman at Sun.COM
Tue Mar 24 18:12:30 UTC 2009
- Previous message: Review request for 6795561
- Next message: Review request for 6772303
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
6772303: (se) IOException: Invalid argument" thrown on a call to Selector.select(value) with -d64
This is Solaris and 64-bit specific. In summary, the DP_POLL ioctl used to retrieve events from the /dev/poll driver limits the number of pollfd entries in the poll array to the maximum number of file descriptors minus 1. The /dev/poll Selector uses this limit or 8k (whichever is smaller) to size its poll array. This sizing breaks for the unlimited case on 64-bit because RLIM64_INFINITY is negative (-3) and also the code is truncating the limit to a jint. This manifests with the select method throwing IOException "Invalid argument". There are many ways to fix this, one of the simplest being to treat infinity as Integer.MAX_VALUE.
The webrev is here: http://cr.openjdk.java.net/~alanb/6772303/webrev.00/
Thanks, Alan.
- Previous message: Review request for 6795561
- Next message: Review request for 6772303
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]