[11u] RFR: 8258414: OldObjectSample events too expensive

Langer, Christoph christoph.langer at sap.com
Thu Apr 22 11:12:11 UTC 2021


Hi,

it appears as if this backport wasn't tested properly. We should take care that something like that doesn't happen too often...

Maybe for now it would be most appropriate to back it out and redo it later when the problems are understood/fixed?

Thanks
Christoph

> -----Original Message-----
> From: jdk-updates-dev <jdk-updates-dev-retn at openjdk.java.net> On
> Behalf Of Thomas Stüfe
> Sent: Donnerstag, 22. April 2021 13:02
> To: Aleksey Shipilev <shade at redhat.com>
> Cc: Doerr, Martin <martin.doerr at sap.com>; Hohensee, Paul
> <hohensee at amazon.com>; Jaroslav Bachorík
> <jaroslav.bachorik at datadoghq.com>; Florian David
> <florian.david at datadoghq.com>; jdk-updates-dev <jdk-updates-
> dev at openjdk.java.net>; Marcus Hirt <marcus.hirt at datadoghq.com>
> Subject: Re: [11u] RFR: 8258414: OldObjectSample events too expensive
> 
> Opened Issue https://bugs.openjdk.java.net/browse/JDK-8265750
> 
> ...Thomas
> 
> On Thu, Apr 22, 2021 at 11:35 AM Aleksey Shipilev <shade at redhat.com>
> wrote:
> 
> > On 4/22/21 11:19 AM, Doerr, Martin wrote:
> > > Hi,
> > >
> > > it did not only break the debug build.
> > >
> > > We have seen a crash on Windows:
> > > #  Internal Error (./src/hotspot/share/runtime/safepoint.cpp:894),
> > pid=11412, tid=12932
> > > #  fatal error: Deadlock in safepoint code.  Should have called back to
> > the VM before blocking.
> > >
> > > V  [jvm.dll+0x247c64]  report_fatal+0x64  (debug.cpp:268)
> > > V  [jvm.dll+0x65e30b]  SafepointSynchronize::block+0x14b
> > (safepoint.cpp:893)
> > > V  [jvm.dll+0x101d44]  SafepointMechanism::block_if_requested+0x34
> > (safepointmechanism.inline.hpp:73)
> > > V  [jvm.dll+0x6f0d9a]
> > JavaThread::check_safepoint_and_suspend_for_native_trans+0xca
> > (thread.cpp:2508)
> > > V  [jvm.dll+0x5e3175]  ObjectSampleCheckpoint::on_rotation+0xa5
> > (objectsamplecheckpoint.cpp:301)
> > > V  [jvm.dll+0x397694]  JfrRecorderService::pre_safepoint_write+0x64
> > (jfrrecorderservice.cpp:428)
> > > V  [jvm.dll+0x3978a4]  JfrRecorderService::rotate+0x194
> > (jfrrecorderservice.cpp:325)
> > > V  [jvm.dll+0x398324]  recorderthread_entry+0xd4
> > (jfrrecorderthreadloop.cpp:76)
> > > V  [jvm.dll+0x6f7649]  JavaThread::run+0x139  (thread.cpp:1840)
> > > V  [jvm.dll+0x6f06b4]  Thread::call_run+0x84  (thread.cpp:391)
> > > V  [jvm.dll+0x5f8e36]  thread_native_entry+0xd6  (os_windows.cpp:460)
> > >
> > > Test:
> > > jdk/jfr/startupargs/TestOldObjectQueueSize.java
> >
> > Even on Linux, there are lots of jdk_jfr test failures:
> >
> >     TEST                                              TOTAL  PASS  FAIL
> > ERROR
> >  >> jtreg:test/jdk/jdk/jfr                              441   387    54
> >  0 <<
> >
> >
> > Mostly failing like this:
> >
> > #  Internal Error
> > (/home/shade/trunks/jdk-updates-jdk11u-
> dev/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint
> .cpp:298),
> >
> > pid=2199952, tid=2200076
> > #  assert(SafepointSynchronize::is_at_safepoint()) failed: must be at
> > safepoint!
> >
> > Stack: [0x00007f7cbd920000,0x00007f7cbda21000],
> sp=0x00007f7cbda1f700,
> > free space=1021k
> > Native frames: (J=compiled Java code, A=aot compiled Java code,
> > j=interpreted, Vv=VM code, C=native
> > code)
> > V  [libjvm.so+0x1b836c7]  VMError::report_and_die(int, char const*, char
> > const*, __va_list_tag*,
> > Thread*, unsigned char*, void*, void*, char const*, int, unsigned
> > long)+0x397
> > V  [libjvm.so+0x1b845e5]  VMError::report_and_die(Thread*, void*, char
> > const*, int, char const*,
> > char const*, __va_list_tag*)+0x35
> > V  [libjvm.so+0xc3d7aa]  report_vm_error(char const*, int, char const*,
> > char const*, ...)+0x10a
> > V  [libjvm.so+0x1645973]
> > ObjectSampleCheckpoint::on_rotation(ObjectSampler const*)+0x893
> > V  [libjvm.so+0x1093c45]  JfrRecorderService::pre_safepoint_write()+0x255
> > V  [libjvm.so+0x1093e9c]  JfrRecorderService::write()+0xcc
> > V  [libjvm.so+0x1094242]
> JfrRecorderService::finalize_current_chunk()+0x22
> > V  [libjvm.so+0x10948b0]  JfrRecorderService::rotate(int)+0x370
> > V  [libjvm.so+0x1096492]  recorderthread_entry(JavaThread*,
> Thread*)+0x162
> > V  [libjvm.so+0x1ab7d92]  JavaThread::thread_main_inner()+0x252
> > V  [libjvm.so+0x1ab0e8b]  Thread::call_run()+0x7b
> > V  [libjvm.so+0x1694806]  thread_native_entry(Thread*)+0x116
> >
> >
> > David, Jaroslav, you have to run the targeted subsystem tests when doing a
> > backport like this!
> >
> > --
> > Thanks,
> > -Aleksey
> >
> >


More information about the jdk-updates-dev mailing list