RFR: 8267952: async logging supports to dynamically change tags and decorators

David Holmes david.holmes at oracle.com
Tue Jun 15 12:38:39 UTC 2021


On 15/06/2021 3:40 pm, Xin Liu wrote:
> On Mon, 14 Jun 2021 22:21:13 GMT, David Holmes <david.holmes at oracle.com> wrote:
> 
>> The updated branch passes the tier6 testing that previously failed. If
> rotate() should not be being used by the test, yet the rotate() fix has
> addressed the crashes, then apparently something else must be happening
> here that is not fully understood.
> 
> Thanks for the feedback. To be honest, I am not sure what the root cause is.
> I ran those two concurrent tests in hours as follows on different platforms, I have never seen a single crash. If I can have a reproducible, I will certainly figure out why and fix it.
> 
> Now I intend to believe it's an external factor which caused it fails.  Those two tests don't trigger log rotation, but other gtests may do. Perhaps Oracle Linux mounts a small partition on /tmp.
> 
> My comment is like "a theory of operation". I try to document the original author's intention.  IMHO, it's thread-safe.
> Do you mind trying that patch again?  Maybe we were just lucky.

This time I got the old crash again in tier7:

[ RUN      ] LogConfigurationTest.reconfigure_decorators_MT_vm
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error 
(/opt/mach5/mesos/work_dir/slaves/35546316-ed70-4084-8244-d672e7734fd1-S56997/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/3e3c1142-1595-4682-b00e-27397233f191/runs/5367405b-c511-4cff-962e-c538d3a40ccb/workspace/open/src/hotspot/share/logging/logDecorations.cpp:78), 
pid=23019, tid=23025
#  assert(_decorators.is_decorator(decorator)) failed: decorator was not 
part of the decorator set specified at creation.
#
# JRE version: Java(TM) SE Runtime Environment (18.0) (fastdebug build 
18-internal+0-2021-06-15-0623001.david.holmes.jdk-dev3.git)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 
18-internal+0-2021-06-15-0623001.david.holmes.jdk-dev3.git, mixed mode, 
tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x15fa3e4] 
LogDecorations::decoration(LogDecorators::Decorator, char*, unsigned 
long) const+0x94
#

Stack: [0x00007f8834f2a000,0x00007f883502a000],  sp=0x00007f8835028600, 
  free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, 
C=native code)
V  [libjvm.so+0x15fa3e4] 
LogDecorations::decoration(LogDecorators::Decorator, char*, unsigned 
long) const+0x94
V  [libjvm.so+0x15fd207]  LogFileStreamOutput::write(LogDecorations 
const&, char const*)+0x77
V  [libjvm.so+0x15fc4f2]  LogFileOutput::write_blocking(LogDecorations 
const&, char const*)+0x42
V  [libjvm.so+0x15f6b0d]  AsyncLogWriter::run()+0x35d
V  [libjvm.so+0x1c0d0c0]  Thread::call_run()+0x100
V  [libjvm.so+0x18d9f64]  thread_native_entry(Thread*)+0x10


BTW: I noticed a separate bug in the crash log. You've defined:

  bool is_Named_thread() const override { return true; }

for the AsyncLogWriter, but as you pointed out when I asked, this thread 
can't be a NamedThread because that is a special kind of GC thread. So 
that method should not be there.

David
-----

> 
> [ RUN      ] LogConfigurationTest.reconfigure_decorators_MT_vm
> [       OK ] LogConfigurationTest.reconfigure_decorators_MT_vm (3601037 ms)
> [ RUN      ] LogConfigurationTest.reconfigure_tags_MT_vm
> [       OK ] LogConfigurationTest.reconfigure_tags_MT_vm (3600112 ms)
> 
> 
> thanks,
> --lx
> 
> -------------
> 
> PR: https://git.openjdk.java.net/jdk/pull/4408
> 


More information about the hotspot-runtime-dev mailing list