JDK-8022203 - Intermittent test failures in demo/jvmti/hprof
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