--- old/test/sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java 2021-04-24 13:43:31.845624868 +0100 +++ new/test/sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java 2021-04-24 13:43:31.645623003 +0100 @@ -31,7 +31,7 @@ /* * @test - * @bug 8256818 8257670 + * @bug 8256818 8257670 8257884 * @summary Test that creating and closing SSL Sockets without bind/connect * will not leave leaking socket file descriptors * @run main/native/manual/othervm SSLSocketLeak @@ -48,10 +48,14 @@ // Note: this test is not reliable, run it manually. public class SSLSocketLeak { + // number of sockets to open/close private static final int NUM_TEST_SOCK = 500; private static final boolean IS_WINDOWS = System.getProperty("os.name").toLowerCase().startsWith("windows"); private static volatile boolean nativeLibLoaded; + // percentage of accepted growth of open handles + private static final int OPEN_HANDLE_GROWTH_THRESHOLD = IS_WINDOWS ? 25 : 10; + public static void main(String[] args) throws IOException { long fds_start = getProcessHandleCount(); System.out.println("FDs at the beginning: " + fds_start); @@ -64,7 +68,7 @@ long fds_end = getProcessHandleCount(); System.out.println("FDs in the end: " + fds_end); - if ((fds_end - fds_start) > (NUM_TEST_SOCK / 10)) { + if ((fds_end - fds_start) > (NUM_TEST_SOCK / OPEN_HANDLE_GROWTH_THRESHOLD)) { throw new RuntimeException("Too many open file descriptors. Looks leaky."); } }