This is an automated email from the ASF dual-hosted git repository.
jinrongtong pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new 09beca60eb [ISSUE #8549] Ipv6 enabled in broker, pickupStoreTimestamp
size should be 20 (#8567)
09beca60eb is described below
commit 09beca60eb5f2bd75fd0b092a1a3b0f583d010c5
Author: Lei Zhiyuan <[email protected]>
AuthorDate: Wed Aug 21 13:44:26 2024 +0800
[ISSUE #8549] Ipv6 enabled in broker, pickupStoreTimestamp size should be
20 (#8567)
* fix: when ipv6 enabled in broker, pickupStoreTimestamp size should be
12(20-8)
* fix: when ipv6 enabled in broker, pickupStoreTimestamp size should be 20
---
.../main/java/org/apache/rocketmq/store/DefaultMessageStore.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git
a/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java
b/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java
index a901e850ed..f159c31a7b 100644
--- a/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java
+++ b/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java
@@ -58,6 +58,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Supplier;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.validator.routines.InetAddressValidator;
import org.apache.rocketmq.common.AbstractBrokerRunnable;
import org.apache.rocketmq.common.BoundaryType;
import org.apache.rocketmq.common.BrokerConfig;
@@ -1178,7 +1179,11 @@ public class DefaultMessageStore implements MessageStore
{
if (this.getCommitLog() instanceof DLedgerCommitLog) {
minPhyOffset += DLedgerEntry.BODY_OFFSET;
}
- final int size = MessageDecoder.MESSAGE_STORE_TIMESTAMP_POSITION + 8;
+ int size = MessageDecoder.MESSAGE_STORE_TIMESTAMP_POSITION + 8;
+ InetAddressValidator validator = InetAddressValidator.getInstance();
+ if (validator.isValidInet6Address(this.brokerConfig.getBrokerIP1())) {
+ size = MessageDecoder.MESSAGE_STORE_TIMESTAMP_POSITION + 20;
+ }
return this.getCommitLog().pickupStoreTimestamp(minPhyOffset, size);
}