Skip to content

Appender#stop is not idempotent #1653

Open
@ppkarwasz

Description

@ppkarwasz

Description

In Log4j 2 managers are reference counted: if you have two FileAppenders writing to the same file, there will be a single FileManager with a reference count of 2.

Calling stop() on a stopped appender always calls stop() on the underlying manager. In the situation described above it is effectively possible to stop both file appender by calling stop() twice on one of them.

This a problem, because those appenders might not even be in the same configuration or attached to the same logger context.

Configuration

Version: up to 2.20.0 and 3.0.0-alpha1

Reproduction

Call stop() multiple times on a file appender. All other appenders pointing to the same file will stop logging.

Metadata

Metadata

Assignees

No one assigned

    Labels

    appendersAffects one or more Appender pluginsbugIncorrect, unexpected, or unintended behavior of existing code

    Type

    No type

    Projects

    Status

    To triage

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions