RFR: 8265240: runtime/Thread/SuspendAtExit.java needs updating

David Holmes dholmes at openjdk.java.net
Wed Apr 21 06:07:06 UTC 2021


On Mon, 19 Apr 2021 19:15:18 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:

> I'm updating the runtime/Thread/SuspendAtExit.java test:
> 
> - switch from java.lang.Thread.suspend() to JVM/TI SuspendThread()
> - switch from java.lang.Thread.resume() to JVM/TI ResumeThread()
> - switch from counter-based to time-based testing
> - improve error checking since we're now using an API with error codes!
> 
> I've used this test to stress @robehn's fix for JDK-8257831 using both
> invocation styles for 9 hours each in {fastdebug, release, slowdebug}
> configs without any issues.
> 
> I've run the updated test thru Mach5 Tier[134567] testing; one timeout
> was observed in a single Tier6 run on Win-X64. I believe this is a case of
> a lost Thread.interrupt() call.

Hi Dan,

A few nits (mostly pre-existing) but otherwise the conversion to JVMTI looks good.

Thanks,
David

test/hotspot/jtreg/runtime/Thread/SuspendAtExit.java line 90:

> 88:         while (System.currentTimeMillis() < start_time + (timeMax * 1000)) {
> 89:             count++;
> 90:             SuspendAtExit threads[] = new SuspendAtExit[N_THREADS];

Style nit pre-existing: The [] go on the type not the variable.

test/hotspot/jtreg/runtime/Thread/SuspendAtExit.java line 103:

> 101:                     // the exitSyncObj.await() call and the SuspendThread()
> 102:                     // calls will come in during thread exit.
> 103:                     threads[i].interrupt();

Pre-existing: why use interrupt() instead of simply calling countDown() on the latch ??

test/hotspot/jtreg/runtime/Thread/SuspendAtExit.java line 159:

> 157:                                                "after thread #" + i +
> 158:                                                " has been join()'ed");
> 159:                 }

This is unnecessary, you aren't testing the correctness of Thread.join() here. join() can't return normally if the thread is alive.

test/hotspot/jtreg/runtime/Thread/libSuspendAtExit.cpp line 2:

> 1: /*
> 2:  * Copyright (c) 2001, 2021, Oracle and/or its affiliates. All rights reserved.

Copyright year should just be 2021.

-------------

Marked as reviewed by dholmes (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/3576


More information about the hotspot-runtime-dev mailing list