zmuxuny opened a new pull request, #5192:
URL: https://github.com/apache/rocketmq-dashboard/pull/5192

   ### Which Issue(s) This PR Fixes
   Fixes #5191
   
   ### Brief Description
   DLQ replay keeps `__SHARDINGKEY` in the reconstructed message, but ordinary 
`producer.send(message)` ignores that group when choosing a queue. Same-group 
messages can therefore be scattered across queues even though every send 
reports success.
   
   Use the existing group-hash selection convention for dead letters carrying a 
nonblank group. This applies to both time-range and selected-message replay, 
retaining the original topic or the caller's explicit target. Ungrouped sends 
and existing failure reporting stay unchanged. Grouped sends never fall back to 
the ordinary overload after failure.
   
   Scope: queue affinity under a stable route. This does not restore historical 
application order, coordinate concurrent replays, or promise ordering across 
failed messages and later retries. No API, schema, dependency or frontend 
changes.
   
   ### How Did You Test This Change?
   - Two initial affinity regressions failed on unchanged production code: the 
actual RocketMQ 5.5.0 `TopicPublishInfo` round-robin selector put repeated FIFO 
groups on different queues while the replay reported all four sends successful.
   - Seven added regression cases cover selected IDs/original topic, 
time-range/explicit target, two distinct negative-hash groups including 
`Integer.MIN_VALUE`, missing group, existing empty/blank-property rejection, 
and exceptional/non-successful grouped sends without ordinary-send fallback.
   - `mvn -B -ntp test 
-Dtest=RocketMQDLQProviderTest,DLQServiceTest,DLQControllerTest,RuntimeAdminClientResolverTest,MqClientPoolTest`:
 **103 tests passed**, zero failures/errors; zero Checkstyle violations.
   - Broader backend run excluding the 13 datasource-dependent 
`@SpringBootTest` classes: **3,264 tests ran; 3,237 passed, 16 failed, 11 
errored**. All 27 failing/error cases are in unmodified `LlmConfigServiceTest` 
and `NotificationOutboxServiceTest`. Running those two classes in a clean 
upstream `4ee173ad` worktree reproduced the **same 27 case names and exception 
types** (URL validation/webhook expectations). This is not a full-suite pass.
   - `mvn -B -ntp -DskipTests package`: compilation, tests compilation, JAR 
creation and Spring Boot repackaging completed. The final binary-license gate 
fails on missing complete dependency LICENSE/COPYING files. Clean upstream 
`4ee173ad` reproduces the same 164 missing-license artifact diagnostics. No 
packaging success is claimed.
   - `git diff --check`: passed.
   - Toolchain: Temurin 21.0.12.1 and Maven 3.9.11, with Mockito loaded as a 
startup Java agent. No live broker, MySQL, frontend or end-to-end test is 
claimed.
   
   AI assistance was used. The source behavior, diff, deterministic regression 
and compatibility/failure cases were reviewed.
   
   ### Checklist
   - [x] One coherent defect fix linked to an issue created before the 
production edit
   - [x] Conventional commit subject
   - [x] Regression tests named with the `Test` suffix
   - [x] Existing ASF source headers retained; no new source files
   - [x] Validation results and baseline limitations disclosed
   - [x] No new UI text, dependency or schema change
   


-- 
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