You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by du...@apache.org on 2022/03/01 12:25:19 UTC
[rocketmq] branch develop updated: Fix testTruncateCQ on Windows by releasing mapped files. (#3865)
This is an automated email from the ASF dual-hosted git repository.
duhengforever 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 7438dab Fix testTruncateCQ on Windows by releasing mapped files. (#3865)
7438dab is described below
commit 7438dab36474405b0dba40b4b07b57c60e157fe2
Author: cnScarb <jj...@163.com>
AuthorDate: Tue Mar 1 20:25:12 2022 +0800
Fix testTruncateCQ on Windows by releasing mapped files. (#3865)
---
.../java/org/apache/rocketmq/store/StoreTestUtil.java | 15 +++++++++++++++
.../rocketmq/store/dledger/DLedgerCommitlogTest.java | 4 ++++
2 files changed, 19 insertions(+)
diff --git a/store/src/test/java/org/apache/rocketmq/store/StoreTestUtil.java b/store/src/test/java/org/apache/rocketmq/store/StoreTestUtil.java
index 59809c2..12ca49f 100644
--- a/store/src/test/java/org/apache/rocketmq/store/StoreTestUtil.java
+++ b/store/src/test/java/org/apache/rocketmq/store/StoreTestUtil.java
@@ -16,6 +16,11 @@
*/
package org.apache.rocketmq.store;
+import io.openmessaging.storage.dledger.store.file.DefaultMmapFile;
+import io.openmessaging.storage.dledger.store.file.MmapFile;
+import java.io.IOException;
+import java.util.List;
+import org.apache.commons.lang3.SystemUtils;
import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.store.index.IndexFile;
@@ -86,4 +91,14 @@ public class StoreTestUtil {
indexService.flush(f);
}
}
+
+ public static void releaseMmapFilesOnWindows(List<MmapFile> mappedFiles) throws IOException {
+ if (!SystemUtils.IS_OS_WINDOWS) {
+ return;
+ }
+ for (final MmapFile mappedFile : mappedFiles) {
+ DefaultMmapFile.clean(mappedFile.getMappedByteBuffer());
+ mappedFile.getFileChannel().close();
+ }
+ }
}
diff --git a/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerCommitlogTest.java b/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerCommitlogTest.java
index 8ab8a23..0e3e01d 100644
--- a/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerCommitlogTest.java
+++ b/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerCommitlogTest.java
@@ -39,6 +39,8 @@ import org.apache.rocketmq.store.PutMessageStatus;
import org.junit.Assert;
import org.junit.Test;
+import static org.apache.rocketmq.store.StoreTestUtil.releaseMmapFilesOnWindows;
+
public class DLedgerCommitlogTest extends MessageStoreTestBase {
@@ -63,6 +65,7 @@ public class DLedgerCommitlogTest extends MessageStoreTestBase {
Assert.assertEquals(0, messageStore.dispatchBehindBytes());
doGetMessages(messageStore, topic, 0, 2000, 0);
messageStore.shutdown();
+ releaseMmapFilesOnWindows(dLedgerMmapFileStore.getDataFileList().getMappedFiles());
}
{
@@ -79,6 +82,7 @@ public class DLedgerCommitlogTest extends MessageStoreTestBase {
Assert.assertEquals(0, messageStore.dispatchBehindBytes());
doGetMessages(messageStore, topic, 0, 1700, 0);
messageStore.shutdown();
+ releaseMmapFilesOnWindows(dLedgerMmapFileStore.getDataFileList().getMappedFiles());
}
{
//Abnormal recover, left none commitlogs