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