8022203 - Intermittent test failures in demo/jvmti/hprof (original) (raw)

Sergei Kovalev sergei.kovalev at oracle.com
Fri Feb 7 02:10:24 PST 2014


Hello everyone,

I'm working for https://bugs.openjdk.java.net/browse/JDK-8022203.

The issue reproducible only on the host where it was initially discovered.

For testing I chose demo/jvmti/hprof/OptionsTest.java test. I identified that failure occurs only with below sequence:

hprof = new DemoRun("hprof", "cpu=times,depth=0"); hprof = new DemoRun("hprof", "cpu=old,depth=0");

here second line leads to fail with probability 1/10000. Using process monitor "ProcMon" by Sysinternals I discovered that issue caused by slippage in delete operation. According event log:

Normal file system operations looks like: "3:21:16.7185415 AM","java.exe","3532","CreateFile","C:\Users\aurora\jdk\sk_jdk\JTwork\scratch\java.hprof.txt","SUCCESS","Desired Access: Generic Write, Read Attributes, Disposition: OverwriteIf, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: 0, OpenResult: Created"

Operation that leads to fail: "3:52:30.6024647 AM","java.exe","3924","CreateFile","C:\Users\aurora\jdk\sk_jdk\JTwork\scratch\java.hprof.txt","DELETE PENDING","Desired Access: Generic Write, Read Attributes, Disposition: OverwriteIf, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: 0"

So this is not the test issue. To avoid IO operation failures I propose to use unique file name for each iteration. In this case test would not overwrite file and would not depend on filesystem performance. For example above code will looks like:

hprof = new DemoRun("options", "cpu=old,depth=0"); hprof = new DemoRun("optins1", "depth=0");

Please let me know if you have any comments or suggestion.

-- With best regards, Sergei



More information about the hotspot-dev mailing list