Question regarding JVM crashes in GC
michael.rasmussen at zeroturnaround.com
Mon Apr 10 19:15:55 UTC 2017
On 10 April 2017 at 21:14, Volker Simonis <volker.simonis at gmail.com> wrote:
> So to keep a long story short, I don't think it is a good idea to change the
> class loading and initialization order of the "well-known" classes as
> described in systemDictionary.hpp. That order is carefully handcrafted and
> extremely sensitive to changes and can have all kind of unforeseeable side
> effects (as you've painfully detected yourself :)
Thank you very much for the in-depth explanation.
I'm aware that the order is a bit fragile, and the approach we've been
using up till now hasn't changed that order (we've only caused extra
classes to be loaded, basically a class and an interface loaded very
early, and then the rest later as needed) -- unfortunately that
approach doesn't work with JDK9 and the restrictions added by the
module system, where what we can load before the module system is up
and running has been severely limited.
Usually though, when we've tinkered with something like that, we've
seen crashes immediately, which was why this one was kind of tricky,
since basically all our integration tests were working, except a few
here and there, which we narrowed down to those that did a full GC
(and then with help from Stefan, I figured out that it was because of
our Reference types being loaded).
More information about the hotspot-dev