RFR: 8278125: Some preallocated OOMEs are missing stack trace [v3]
Coleen Phillimore
coleenp at openjdk.java.net
Mon Dec 20 23:19:51 UTC 2021
On Mon, 20 Dec 2021 22:50:54 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> src/hotspot/share/memory/universe.cpp line 688:
>>
>>> 686: java_lang_Throwable::set_message(oom_array->obj_at(_oom_metaspace), msg());
>>> 687:
>>> 688: msg = java_lang_String::create_from_str(MSG_CLASS_METASPACE, CHECK);
>>
>> I meant intern these two strings here and check for equality? Save the interned string in a static OopHandle in the Universe class.
>
> Sorry Coleen I do not understand what you mean by this. How do you compare the "interned" oop String with the incoming `char*` text?
OopHandle Universe::_metaspace_string;
...
msg = String::intern("Metaspace", CHECK);
java_lang_Throwable::set_message(oom_array->obj_at(_oom_metaspace, msg());
Universe::_metaspace_string = OopHandle(vm_global(), msg);
...
bool Universe::is_metaspace_oome(oop exc) {
return java_lang_Throwable::get_message(exc) == _metaspace_string.resolve();
}
-------------
PR: https://git.openjdk.java.net/jdk/pull/6672
More information about the hotspot-runtime-dev
mailing list