> The test `java/lang/ClassLoader/loadLibraryUnload/LoadLibraryUnloadTest.java`
> Fails intermittently when expected output from a subprocess is not found.
> 
> I suspect a race between the Cleaner that is going to call JNI_OnUnload (in 
> NativeLibraries.java:377) when the ClassLoader is no longer referenced and 
> the test code that exits as soon as it detects that the p.Class1 is no longer 
> referenced.
> 
> The proposed fix is to create a canary object referenced by the native 
> library and released when the library is unloaded.
> The Java side of the test provides the canary object and uses a WeakReference 
> to wait for it to be released.
> When released the child process exits and the driver test will find all of 
> the output it expects.

Roger Riggs has updated the pull request incrementally with one additional 
commit since the last revision:

  Add Utils.adjustTimeout to waits for refs to be cleared

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/9474/files
  - new: https://git.openjdk.org/jdk/pull/9474/files/cedaa015..8534379c

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=9474&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=9474&range=02-03

  Stats: 3 lines in 1 file changed: 1 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/9474.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/9474/head:pull/9474

PR: https://git.openjdk.org/jdk/pull/9474

Reply via email to