[ISSUE #8903] fix dledger mode expired message can not delete on jdk9+ (#9851)

This commit is contained in:
littleboy
2025-12-15 15:09:01 +08:00
committed by GitHub
parent beee84fa44
commit 71659e35f2
3 changed files with 16 additions and 5 deletions
+1 -1
View File
@@ -54,7 +54,7 @@ maven_install(
"commons-validator:commons-validator:1.7",
"org.apache.commons:commons-lang3:3.12.0",
"org.hamcrest:hamcrest-core:1.3",
"io.openmessaging.storage:dledger:0.3.1",
"io.openmessaging.storage:dledger:0.3.2",
"net.java.dev.jna:jna:4.2.2",
"ch.qos.logback:logback-classic:1.2.10",
"ch.qos.logback:logback-core:1.2.10",
@@ -17,6 +17,7 @@
package org.apache.rocketmq.controller.impl;
import io.openmessaging.storage.dledger.entry.DLedgerEntry;
import io.openmessaging.storage.dledger.exception.DLedgerException;
import io.openmessaging.storage.dledger.snapshot.SnapshotReader;
import io.openmessaging.storage.dledger.snapshot.SnapshotWriter;
import io.openmessaging.storage.dledger.statemachine.CommittedEntryIterator;
@@ -28,8 +29,6 @@ import org.apache.rocketmq.controller.impl.manager.ReplicasInfoManager;
import org.apache.rocketmq.logging.org.slf4j.Logger;
import org.apache.rocketmq.logging.org.slf4j.LoggerFactory;
import java.util.concurrent.CompletableFuture;
/**
* The state machine implementation of the dledger controller
*/
@@ -46,6 +45,11 @@ public class DLedgerControllerStateMachine implements StateMachine {
this.dLedgerId = generateDLedgerId(dLedgerGroupId, dLedgerSelfId);
}
@Override
public String generateDLedgerId(String dLedgerGroupId, String dLedgerSelfId) {
return new StringBuilder(20).append(dLedgerGroupId).append("#").append(dLedgerSelfId).toString();
}
@Override
public void onApply(CommittedEntryIterator iterator) {
int applyingSize = 0;
@@ -66,7 +70,8 @@ public class DLedgerControllerStateMachine implements StateMachine {
}
@Override
public void onSnapshotSave(SnapshotWriter writer, CompletableFuture<Boolean> future) {
public boolean onSnapshotSave(SnapshotWriter writer) {
return true;
}
@Override
@@ -76,6 +81,12 @@ public class DLedgerControllerStateMachine implements StateMachine {
@Override
public void onShutdown() {
log.info("StateMachine {} onShutdown", this.dLedgerId);
}
@Override
public void onError(DLedgerException exception) {
log.error("Encountered an error on StateMachine {}, dLedger may stop working since some error occurs, you should figure out the cause and repair or remove this node.", this.dLedgerId, exception);
}
@Override
+1 -1
View File
@@ -123,7 +123,7 @@
<lz4-java.version>1.8.0</lz4-java.version>
<opentracing.version>0.33.0</opentracing.version>
<jaeger.version>1.8.1</jaeger.version>
<dleger.version>0.3.1.2</dleger.version>
<dleger.version>0.3.2</dleger.version>
<annotations-api.version>6.0.53</annotations-api.version>
<extra-enforcer-rules.version>1.0-beta-4</extra-enforcer-rules.version>
<concurrentlinkedhashmap-lru.version>1.4.2</concurrentlinkedhashmap-lru.version>