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