RFR(xs): 8247252: TestCombinedCompressedFlags.java failed src/hotspot/share/services/virtualMemoryTracker.cpp:388 Error: ShouldNotReachHere()

Thomas Stüfe thomas.stuefe at gmail.com
Wed Jun 10 18:58:46 UTC 2020


Thanks Calvin! I guess I am still in the dark about how these tier groups
work at Oracle.

I think that any really important flags should not be given from outside
but be part of the test. See my answer to Yumin.

Cheers, Thomas

On Wed, Jun 10, 2020 at 7:10 PM Calvin Cheung <calvin.cheung at oracle.com>
wrote:

> Hi Thomas,
>
> If you want to make sure your fix works with other appcds tests, you can
> specify the following in the jtreg command line:
>
> -vmoptions:"-XX:+UnlockDiagnosticVMOptions -XX:ArchiveRelocationMode=1
> -XX:NativeMemoryTracking=detail"
> <repo>/open/test/hotspot/jtreg:hotspot_cds_relocation
>
> thanks,
>
> Calvin
>
> On 6/10/20 8:52 AM, Daniel D. Daugherty wrote:
> >> The reason we did not see these errors before in our (SAPs) CI was
> >> that we
> >> run our tests with NMT (by default) switched off. Apparently Oracle runs
> >> the jtreg tests with NMT enabled via -vmoptions? We will change our
> >> CI to
> >> do this too. But it would be good if the test flags would be published
> >> somewhere, and we would all use the same flags.
> >
> > This failure first showed up in our Tier4 testing. It looks like
> > that tier's task definition includes these options:
> >
> > -XX:+UnlockDiagnosticVMOptions -XX:ArchiveRelocationMode=1
> > -Xlog:cds=debug -XX:NativeMemoryTracking=detail
> >
> >
> > The task itself is named: tier4-rt-cds-relocation.
> >
> > I don't know if there are plans to publish the tiered testing
> > task definitions.
> >
> > Dan
> >
> >
> > On 6/10/20 9:09 AM, Thomas Stüfe wrote:
> >> Hi all,
> >>
> >> could I please have reviews for this bug fix.
> >>
> >> JBS: https://bugs.openjdk.java.net/browse/JDK-8247252
> >> webrev:
> >>
> http://cr.openjdk.java.net/~stuefe/webrevs/8247252-cds-nmt-ccps-off/webrev.00/webrev/
> >>
> >>
> >> This bug was introduced with "8243535 NMT may show wrong numbers for CDS
> >> and CCS".
> >>
> >> The error is that a VM loading a shared archive but having compressed
> >> class
> >> pointers disabled would reserve space for the CDS but fail to
> >> register it
> >> with the correct tag with NMT. So, inside NMT it still is marked as
> >> "mtUnknown". This leads to a follow up error when the actual archive
> >> files
> >> are to be mapped into this reserved region, since the region is
> >> expected to
> >> carry the "mtClassShared" tag for this to work.
> >>
> >> The fix is simple to add the missing registration in metaspaceShared.cpp
> >> when the cds has been reserved for the non-class-space case:
> >>
> >> @@ -2469,10 +2470,12 @@
> >>       archive_space_rs = ReservedSpace(archive_space_size,
> >> archive_space_alignment,
> >>                                        false /* bool large */,
> >> (char*)base_address);
> >>       if (archive_space_rs.is_reserved()) {
> >>         assert(base_address == NULL ||
> >>                (address)archive_space_rs.base() == base_address,
> >> "Sanity");
> >> +      // Register archive space with NMT.
> >> + MemTracker::record_virtual_memory_type(archive_space_rs.base(),
> >> mtClassShared);
> >>         return archive_space_rs.base();
> >>       }
> >>       return NULL;
> >>     }
> >>
> >> All the rest is fluff:
> >>
> >> - added logging in a number of places to make analysis of these kinds of
> >> errors simpler
> >> - explicitly switched on NMT for a number of cds jtreg tests.
> >>
> >> ---
> >>
> >> The reason we did not see these errors before in our (SAPs) CI was
> >> that we
> >> run our tests with NMT (by default) switched off. Apparently Oracle runs
> >> the jtreg tests with NMT enabled via -vmoptions? We will change our
> >> CI to
> >> do this too. But it would be good if the test flags would be published
> >> somewhere, and we would all use the same flags.
> >>
> >> Thanks, Thomas
> >
>


More information about the hotspot-runtime-dev mailing list