Avoid logging raw heartbeat sync message body

Open Beginner friendly
#10,726 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
java
Domain
backend, security

Research direction

Start in proxy/src/main/java/org/apache/rocketmq/proxy/service/sysmessage/HeartbeatSyncer.java at HeartbeatSyncer.consumeMessage and inspect the failure logging path. Add targeted coverage for the summary helper, ensuring failures retain useful diagnostics without emitting raw heartbeat payload fields; heartbeat sync behavior should remain unchanged.

Written by the indexing model from the issue text.

Description

Problem

HeartbeatSyncer.consumeMessage logs the full MessageExt and raw message body when heartbeat sync message parsing or processing fails:

log.error("heartbeat consume message failed. msg:{}, data:{}", msg, new String(msg.getBody(), StandardCharsets.UTF_8), t);

The body contains serialized heartbeat synchronization data, including client identity and subscription metadata. Logging the raw body is unnecessary for diagnostics and can expose operational metadata in proxy logs.

Scope

Track 2 / Proxy runtime diagnostics hardening. This is a logging-safety change only; heartbeat sync behavior should remain unchanged.

Expected behavior

  • Do not log raw heartbeat sync message body on failure.
  • Keep useful diagnostics such as topic, messageId, body size, and parsed heartbeat summary when available.
  • Add targeted coverage for the summary helper so raw payload fields are not emitted.

Evidence

  • proxy/src/main/java/org/apache/rocketmq/proxy/service/sysmessage/HeartbeatSyncer.java logs new String(msg.getBody(), StandardCharsets.UTF_8) in the catch block.
Dominant language
Java
Stars
22.6k
Forks
12k
Avg merge
3d 12h
Merged PRs (30d)
25

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/rocketmq

All issues in apache/rocketmq

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.