RFR of JDK-8049316: TEST_BUG: java/nio/channels/Selector/Wakeup.java fails in same binary run b19

Hamlin Li huaming.li at oracle.com
Wed Nov 30 02:09:49 UTC 2016


Hi Roger,

Thank you for reviewing, please check comments in line.

webrev: http://cr.openjdk.java.net/~mli/8049316/webrev.01/


On 2016/11/30 0:03, Roger Riggs wrote:
> Hi Hamlin,
>
> Wakeup.java:
>
>  - Some refactoring may make it easier to understand.
>    Perhaps moving waitSleeper to be a method on Sleeper.
>    The use of cyclicBarrier seems fine but could use a comment 
> somewhere saying what
> threads/functions are being coordinated; putting them both in Sleeper 
> would make it easier to see.
>
> - line 126,127:  Add a Sleeper constructor to initialize these as needed.
>
> - Some of the test stimulus is buried in the newSleeper methods that 
> was previously
>   in line in main.  It seemed clearer what case was being tested in 
> the original.
>   They are buried in static factory 'newSleeper' functions with 
> uninformative names.
>    lines 112, 116, 120.
All above fixed.
>
>  - If I read it right, some cases where events don't happen that used 
> to be reported as exceptions
>    ("Interrupt never delivered") will now be reported as the test 
> timing out.  (infinite loop at line 85).
No, it will finally checked by a time sleeper.finish(0). At first, I 
don't want to depends on a specific time, because I don't know what 
exact timeout we should use, but as you asked, I think it's ok to 
finish(20_000), it should be long enough.

Thank you
-Hamlin
>
> Thanks, Roger
>
> On 11/29/2016 4:23 AM, Hamlin Li wrote:
>> Would you please review the below patch?
>>
>> bug: https://bugs.openjdk.java.net/browse/JDK-8049316
>> webrev: http://cr.openjdk.java.net/~mli/8049316/webrev.00/
>>
>> Root cause:
>> 1. it depends on sleeping time to check failure, which is not 
>> reliable in some extreme situation
>> 2. it mix several tests together with a loop in Sleeper
>>
>> Solution:
>> 1. synchronize between threads.
>> 2. isolate tests.
>>
>> Thank you
>> Hamlin
>



More information about the nio-dev mailing list