[9] RFR: 8164166: Make sure java/nio/channels tests shutdown	asynchronous channel groups
    Artem Smotrakov 
    artem.smotrakov at oracle.com
       
    Tue Aug 23 00:28:14 UTC 2016
    
    
  
Hello,
Please review the following patch for a couple of java/nio/channels tests.
A couple of test failures have been observed, and jstack reported many 
daemon threads which were not related to failed tests (please see see 
JDK-8162757 and JDK-8162757 for details).
The daemon threads were running EPollPort.EventHandlerTask class. I 
found a number of tests which run in agent VM, and start such daemon 
threads by opening an AsynchronousChannelGroup. If I understand 
correctly, those daemon threads are supposed to stop by calling 
AsynchronousChannelGroup.shutdown() method. I noticed that some tests 
don't guarantee that asynchronous channel groups are always shutdown. 
Please see more details in the bug.
The patch below updates java/nio/channel tests for 
AsynchronousChannelGroup to always shutdown groups. As an enhancement, 
it updates the tests to use try-with-resources block in a couple of places.
I am not familiar with EPollPort class, but at first glance, the logic 
looks quite complex. If EPollPort.EventHandlerTask daemon threads still 
appear after this patch, then there may be a bug in NIO (something may 
get out of sync while shutting down the daemon threads).
Bug: https://bugs.openjdk.java.net/browse/JDK-8164166
Webrev: http://cr.openjdk.java.net/~asmotrak/8164166/webrev.00/
Artem
    
    
More information about the nio-dev
mailing list