RongtongJin opened a new pull request, #10947: URL: https://github.com/apache/rocketmq/pull/10947
### Which Issue(s) This PR Fixes - Fixes #10651 ### Brief Description This PR reworks the DLedger 0.3.3 adaptation on top of the latest DLedger code and [openmessaging/dledger#336](https://github.com/openmessaging/dledger/pull/336). It is intended to supersede the incomplete adaptation in #10650. The change: - adapts RocketMQ broker, store, and controller code to the latest DLedger APIs; - restores immediate append positions required by RocketMQ through DLedger PR #336; - derives the committed physical boundary from DLedger index metadata and prevents reads from exposing an uncommitted tail; - enables fast commit-index advancement and handles DLedger NOOP/control entries safely during append, reput, and abnormal recovery; - handles latest DLedger's ordinary `AppendFuture` result for a single-message batch and `BatchAppendFuture` for multi-message batches; - removes RocketMQ's fastjson1 dependency and aligns Maven/Bazel on fastjson2 2.0.64; - adds JDK 8 cold-start compatibility fixtures, focused store regressions, and a real three-broker failover/full-restart integration test. The validated compatibility boundary is a coordinated full-stop upgrade. Mixed-version rolling upgrade and downgrade are not covered by this PR. > [!IMPORTANT] > This is intentionally a draft. The current DLedger coordinate, `0.3.3-pr336-f2-64-SNAPSHOT`, is a locally built artifact from DLedger master + PR #336 + fastjson2 2.0.64. Before this PR can be merged, DLedger #336 must be merged and a publicly resolvable DLedger artifact must be published; this PR must then switch to that coordinate and rerun the matrix. Related work: #10650, #10928, [openmessaging/dledger#336](https://github.com/openmessaging/dledger/pull/336). ### How Did You Test This Change? All Java verification used Amazon Corretto JDK 8. - DLedger PR #336 regression: 6/6 tests passed; full DLedger reactor passed; RPC cold-start/network harness 3/3 passed. - RocketMQ focused Maven tests: - remoting compatibility: 5/5; - DLedger store regression suite: 8/8; - controller: 7/7; - broker DLedger integration tests: 2/2; - broker container DLedger lifecycle: 1/1. - RocketMQ full Maven `clean test`: 19/19 modules, 3,124 tests, 0 failures, 0 errors, 42 skipped. - Bazel affected build: 5 targets, 203 actions. - Bazel tests: remoting 5/5, store 8/8, controller 1/1, single-broker IT 1/1, three-broker IT 1/1. - Full-stop data compatibility fixture: DLedger 0.3.2 wrote 10 messages; latest code read all 10 before the first new append, then wrote/read message 11. - Final dependency/bytecode audit: 7 packaged JARs and 1,360 classes scanned; no fastjson1 dependency, JAR entry, or class constant remained. - `git diff --check` passed. -- 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]
