RFR: 8260296: SA's dumpreplaydata fails [v2]
Roland Westrelin
roland at openjdk.java.net
Mon Jan 25 09:34:00 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.
Roland Westrelin has updated the pull request incrementally with one additional commit since the last revision:
use CoreUtils
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/2195/files
- new: https://git.openjdk.java.net/jdk/pull/2195/files/19c3cbce..8221f04b
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=2195&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=2195&range=00-01
Stats: 108 lines in 2 files changed: 30 ins; 73 del; 5 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