pilichoumao opened a new issue, #7273:
URL: https://github.com/apache/rocketmq-dashboard/issues/7273

   ### Problem
   
   On `rocketmq-studio` at 127c47b06a268cc74224d5f34c56ec7c36ac0d55, a long DLQ 
producer error containing a supplementary Unicode character can be cut between 
its UTF-16 surrogate halves. `RocketMQDLQProvider.normalizeFailureReason()` 
keeps 253 UTF-16 code units before appending `...` to enforce the 256-unit 
response limit.
   
   For example, the send exception text `"x".repeat(230) + "😀" + 
"y".repeat(40)` follows the real selected-message resend path. The `Producer 
send failed: ` prefix puts the emoji across that cut. The resulting 
`failures[0].reason` contains a lone high surrogate and cannot round-trip 
through UTF-8 unchanged. Resend failure counts remain correct; this issue 
concerns the returned explanation, not message delivery or a database 
vulnerability.
   
   ### Expected behavior
   
   Keep the existing reason limit, whitespace normalization, failure accounting 
and suffix, while cutting only between complete characters. Add boundary 
regressions through the public resend entry point and cover both per-message 
and producer-session failures.
   
   ### Investigation
   
   A Linux/ECS probe of the current production resend path reproduced one 
failure among three adjacent boundary cases; a temporary cut-boundary guard 
passed the related 83 tests. These were local client mocks, without a live 
Broker. Formal Maven/build validation will accompany the patch.
   
   Related work: #4817 introduced the structured DLQ failure details; #4692 
established Unicode-safe bounds in other paths but does not modify this 
provider. Searches for DLQ surrogate/Unicode/failure-reason truncation did not 
find this specific fix.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to