Takahashi Kiyoshi created QPID-8771:
---------------------------------------
Summary: [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.1, qpid-java-broker-10.1.0
Reporter: Takahashi Kiyoshi
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]