RFR: 8260296: SA's dumpreplaydata fails
Roland Westrelin
roland at openjdk.java.net
Fri Jan 22 14:43:58 UTC 2021
I noticed that the SA's dumpreplaydata command fails with:
java.lang.AssertionError: CLHSDB wasn't run successfully: Opening core file, please wait...
hsdb> Exception in thread "main" java.lang.InternalError: ciMetadata does not appear to be polymorphic
with a simple test program. This happens because the SA can't find the
vtable symbol for ciMetadata (build produced by gcc 9.2.1). AFAIU,
there's nothing in our build system that hides that symbol. I had to
move one method's definition from the header file to the cpp file for
the symbol to be visible again.
We have a test that checks dumpreplaydata but it doesn't catch that
problem. The test produces a replay file from a core file with the SA
by running a simple test with -Xcomp and CICrash=1. So the replay data
has very little or no profile data (which is what causes the problem
above). I propose running a slightly more complicated test method and
crashing after the method has had time to run for long enough to
collect profile data.
The other shortcoming of the test is that it doesn't look at the
content of the replay file. It only warns if they differ. The replay
file produced by the VM and the one produced by the SA should be
identical (except for comment lines). So I propose we check that.
Finally, I can't run that test on my system because core files are
handled by systemd (I'm running some recent version of fedora). I
suppose, the system can be configured differently but having the test
work out the box is nice. I extended the test case to handle that.
With the improved test, there are a few differences between the VM and
SA replay files caused by VM changes that were not mirrored in the
SA. I fixed those.
-------------
Commit messages:
- whitespaces
- SA fixes
- VM fix
- test
Changes: https://git.openjdk.java.net/jdk/pull/2195/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2195&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8260296
Stats: 195 lines in 13 files changed: 153 ins; 3 del; 39 mod
Patch: https://git.openjdk.java.net/jdk/pull/2195.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/2195/head:pull/2195
PR: https://git.openjdk.java.net/jdk/pull/2195
More information about the serviceability-dev
mailing list