RFR: JDK-8065078 - NetworkInterface.getNetworkInterfaces() triggers intermittent test failures

Mark Sheppard mark.sheppard at oracle.com
Thu Mar 5 15:48:43 UTC 2015


thanks for the review Chris

regards
Mark
On 05/03/2015 14:09, Chris Hegarty wrote:
> On 4 Mar 2015, at 21:53, Mark Sheppard <mark.sheppard at oracle.com> wrote:
>
>> Hi
>>    please oblige and review the following small change
>> http://cr.openjdk.java.net/~msheppar/8065078/webrev/
> I agree with the increased buffer size, and the strategy you have employed. I think you just need to remove a few comments, otherwise looks fine to me.
>
> -Chris.
>
>> to address the issue raised in
>> https://bugs.openjdk.java.net/browse/JDK-8065078
>>
>> the getAdapters and getAdpater functions were amended in
>> to add additional diagnostic of the error code, in the event of a
>> failure, following the second invocation of GetAdpatersAddresses in the call flows.
>> This has shown that the  ERROR_BUFFER_OVERFLOW (i.e. 111)
>> can occur even though the buffer, to hold the addresses, has been realloced
>> to the size as per that returned in the variable len
>> from the initial GetAdapatersAddresses. Thus, it is possible to have a "race condition" where
>> configuration changes are taking place simultaneously to
>> the NetworkInterface.getNetworkInterfaces() call
>>
>> The proposed change increases the initial size of the addresses buffer to 4096,
>> and in the event of a failure increases the returned buffer size by this amount again.
>>
>> Additionally, the update of the static variable bufsize, after the realloc, was seen as potentially problematic
>> and has thread safe implications, so these updates have been removed. The shared variable is not protected
>> by a mutex during read and write of variable.
>>
>> regards
>> Mark



More information about the net-dev mailing list