[jdk17] RFR: 8267952: async logging supports to dynamically change tags and decorators [v2]

David Holmes dholmes at openjdk.java.net
Thu Jun 24 23:44:11 UTC 2021


On Thu, 24 Jun 2021 05:58:54 GMT, Xin Liu <xliu at openjdk.org> wrote:

>> This patch fixed intermittent crashes of gtest/AsyncLogGtest.java. The root cause 
>> is that previous flush() can't guarantee flush all pending messages in AsyncLog
>> buffer. This patch implements flush() using a synchronizaton token and waits for
>> completion. This approach isn't MT-safe but it can serialize all flush() calls in
>> a thread. 
>> 
>> Two concurrent tests are appended to cover the hazard cases.
>> This patch also comments LogConfiguration::configure_output() MT-safety.
>
> Xin Liu has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Update comments according to reviewers's feedback.

src/hotspot/share/logging/logConfiguration.cpp line 272:

> 270: 
> 271:   // For async logging we have to ensure that all enqueued messages, which may refer to previous decorators,
> 272:   // or a soon-to-be-deleted outputs, are written out first. The flush() call ensures this.

s/outputs/output/

-------------

PR: https://git.openjdk.java.net/jdk17/pull/130


More information about the hotspot-runtime-dev mailing list