RFR: 8277042: add test for 8276036 to compiler/codecache [v2]
Tobias Hartmann
thartmann at openjdk.java.net
Fri Nov 19 07:24:40 UTC 2021
On Mon, 15 Nov 2021 09:51:16 GMT, Takuya Kiriyama <duke at openjdk.java.net> wrote:
>> Could you please review the 8277042 code?
>> This is the enhancement for 8276036.
>> I add a new test to verify the value of full_count in the message of insufficient codecache.
>
> Takuya Kiriyama has updated the pull request incrementally with one additional commit since the last revision:
>
> 8277042: add test for 8276036 to compiler/codecache
Now even with the fix for https://github.com/openjdk/jdk/pull/6449, I hit an assert with the new test once that I'm unfortunately not able to reproduce even after hundreds of runs:
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/workspace/open/src/hotspot/share/compiler/compileBroker.cpp:369), pid=25796, tid=6403
# assert(_last->next() == __null) failed: not last
Stack: [0x000070000838a000,0x000070000848a000], sp=0x00007000084862f0, free space=1008k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0x1159a39] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x6e9
V [libjvm.dylib+0x115a0bb] VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x3b
V [libjvm.dylib+0x628fbd] report_vm_error(char const*, int, char const*, char const*, ...)+0xdd
V [libjvm.dylib+0x5e394a] CompileQueue::add(CompileTask*)+0x8a
V [libjvm.dylib+0x5e718a] CompileBroker::compile_method_base(methodHandle const&, int, int, methodHandle const&, int, CompileTask::CompileReason, bool, Thread*)+0xa3a
V [libjvm.dylib+0x5e7f5d] CompileBroker::compile_method(methodHandle const&, int, int, methodHandle const&, int, CompileTask::CompileReason, DirectiveSet*, JavaThread*)+0x6ad
V [libjvm.dylib+0x5e788e] CompileBroker::compile_method(methodHandle const&, int, int, methodHandle const&, int, CompileTask::CompileReason, JavaThread*)+0xbe
V [libjvm.dylib+0x5c744e] CompilationPolicy::compile(methodHandle const&, int, CompLevel, JavaThread*)+0x4ee
V [libjvm.dylib+0x5c69dc] CompilationPolicy::event(methodHandle const&, methodHandle const&, int, int, CompLevel, CompiledMethod*, JavaThread*)+0x20c
V [libjvm.dylib+0x8eea04] InterpreterRuntime::frequency_counter_overflow_inner(JavaThread*, unsigned char*)+0x304
V [libjvm.dylib+0x8ee4ca] InterpreterRuntime::frequency_counter_overflow(JavaThread*, unsigned char*)+0x1a
j Foo3.foo()I+0
j SomeClass.<clinit>()V+61
v ~StubRoutines::call_stub
```
It seems to be a concurrency issue. I filed [JDK-8277441](https://bugs.openjdk.java.net/browse/JDK-8277441) to track this and will set up a server machine to run it for several days. I'll report back but until then, we should still hold of with integrating this or integrate and problem list right away.
@tkiriyama Good work with the test which already caught two bugs!
-------------
PR: https://git.openjdk.java.net/jdk/pull/6364
More information about the hotspot-compiler-dev
mailing list