Integrated: 8278125: Some preallocated OOMEs are missing stack trace

Yi Yang yyang at openjdk.java.net
Thu Dec 23 02:21:05 UTC 2021


On Thu, 2 Dec 2021 12:54:31 GMT, Yi Yang <yyang at openjdk.org> wrote:

> Our customer found that the PreallocatedOutOfMemoryErrorCount is 4 by default. It ought to pre-allocate 4 OOMEs with stack trace, but in fact, no matter how many OOMEs are thrown, only 2 OOMEs have proper stack trace. This is because PreallocatedOutOfMemoryErrorCount is consumed multiple times:
> 
> VM tries to allocate a huge object while Java heap is insufficient to accommodate, it goes to:
> 
> https://github.com/openjdk/jdk/blob/b79554bb5cef14590d427543a40efbcc60c66548/src/hotspot/share/gc/shared/memAllocator.cpp#L115-L136
> 
> Line 135(`Universe::out_of_memory_error_java_heap`->`Universe::gen_out_of_memory_error`) and line 136(`THROW_OOP_`->`Exceptions::_throw`->`Exceptions::count_out_of_memory_exceptions`->`Universe::out_of_memory_error_java_heap`->`Universe::gen_out_of_memory_error`) call `Universe::gen_out_of_memory_error` twice in a single OOM event, which leads this unexpected scenario. Proposed fix is to remove such call in `Exceptions::count_out_of_memory_exceptions`.
> 
> Thanks.

This pull request has now been integrated.

Changeset: ad1dc9c2
Author:    Yi Yang <yyang at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/ad1dc9c2ae5463363aff20072a3f2ca4ea23acd2
Stats:     88 lines in 4 files changed: 85 ins; 1 del; 2 mod

8278125: Some preallocated OOMEs are missing stack trace

Co-authored-by: dongyun.tdy <dongyun.tdy at alibaba-inc.com>
Reviewed-by: dholmes, coleenp

-------------

PR: https://git.openjdk.java.net/jdk/pull/6672


More information about the hotspot-runtime-dev mailing list