Avoid logging raw MessageExt bodies in proxy ConsumerProcessor
- Dominant language
- Java
- Stars
- 22.6k
- Forks
- 12k
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 27
Description
## Problem
`ConsumerProcessor.filterPopResult` logs `MessageExt` directly in two error paths:
```java
log.error("[BUG] pop message from broker but handle is empty. requestHeader:{}, msg:{}", requestHeader, messageExt);
log.error("process filterMessage failed. requestHeader:{}, msg:{}", requestHeader, messageExt, t);
```
`MessageExt.toString()` delegates to `Message.toString()`, which prints `Arrays.toString(body)`. These logs can expose message payload bytes when POP filtering or handle creation fails.
## Scope
Track 2 / Proxy runtime diagnostics hardening. This should only change log content, not POP filtering behavior.
## Expected behavior
- Do not log raw `MessageExt` objects in `ConsumerProcessor` error paths.
- Keep useful diagnostics such as topic, msgId, queueId, queueOffset, body size, and property keys.
- Add targeted test coverage for the message summary helper.
## Evidence
- `proxy/src/main/java/org/apache/rocketmq/proxy/processor/ConsumerProcessor.java` logs `messageExt` directly.
- `common/src/main/java/org/apache/rocketmq/common/message/Message.java#toString` includes `Arrays.toString(body)`.
Contributor guide
Research direction
Start in proxy/src/main/java/org/apache/rocketmq/proxy/processor/ConsumerProcessor.java and inspect the two error paths that log messageExt directly. Read common/src/main/java/org/apache/rocketmq/common/message/Message.java#toString to confirm how bodies are exposed, then add targeted coverage for the message summary helper. Done means the logs retain topic, msgId, queueId, queueOffset, body size, and property keys without raw body bytes or changed POP filtering behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, security
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 70/100