[
https://issues.apache.org/jira/browse/QPID-8771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniil Kirilyuk resolved QPID-8771.
-----------------------------------
Resolution: Implemented
> [Broker-J] Socket logger modifies producer MDC and loses caller information
> ---------------------------------------------------------------------------
>
> Key: QPID-8771
> URL: https://issues.apache.org/jira/browse/QPID-8771
> Project: Qpid
> Issue Type: Bug
> Components: Broker-J
> Affects Versions: qpid-java-broker-10.1.0, qpid-java-broker-10.1.1
> Reporter: Takahashi Kiyoshi
> Priority: Minor
> Fix For: qpid-java-broker-10.2.0
>
>
> While testing BrokerLogbackSocket logging with a local Logback receiver and
> another appender, we found that configured MDC additions affect the
> producer’s logging context, and the transmitted metadata depends on appender
> order. Caller information is also missing despite includeCallerData being
> enabled.
> The reproduction uses Java 17 and Logback 1.6.3 with:
> - Producer-thread MDC: \{"requestId":"request-123","origin":"producer"}
> - Socket logger mappedDiagnosticContext:
> \{"origin":"socket","broker":"node-a"}
> - Socket logger includeCallerData: true
> - A second appender that reads the event’s MDC, representing local logging
> alongside remote logging
> Reproduction steps: emit a logging event, inspect the producer MDC after the
> logging call, and compare the local and received events. Repeat with the
> second appender running before and after the socket appender.
> The following problems occur:
> 1. Producer MDC is modified: the existing "origin" entry is removed after the
> logging call instead of retaining "producer".
> 2. Socket metadata leaks into other appenders: when the socket appender runs
> first, the local event also contains "origin=socket" and "broker=node-a".
> 3. Configured socket metadata can be omitted: when another appender has
> already captured the event’s MDC, the remote event retains "origin=producer"
> and lacks "broker=node-a".
> 4. Caller information is missing: the received event has an empty caller-data
> array despite "includeCallerData=true".
> The expected behavior is that only the socket event receives the configured
> MDC additions. Its MDC should contain "requestId=request-123",
> "origin=socket", and "broker=node-a". The producer thread and other appenders
> should retain the original MDC. Requested caller information should identify
> the original logging location
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]