apache / apache/rocketmq

Avoid logging raw MessageExt bodies in proxy ConsumerProcessor

Open
#10,728 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.