On Wed, 27 Jan 2021 08:07:04 GMT, Roland Westrelin <[email protected]> wrote:
>> 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 with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains seven additional > commits since the last revision: > > - convert all tests > - Merge branch 'master' into JDK-8260296 > - use CoreUtils > - whitespaces > - SA fixes > - VM fix > - test Marked as reviewed by cjplummer (Reviewer). ------------- PR: https://git.openjdk.java.net/jdk/pull/2195
