This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/0.13 by this push:
     new a1488d93a6 [To rel/0.13] [IOTDB-3816] Fix /zero bug in recover (#6664)
a1488d93a6 is described below

commit a1488d93a65d28314b16c904e631d2947826d037
Author: Haonan <[email protected]>
AuthorDate: Wed Jul 13 16:00:18 2022 +0800

    [To rel/0.13] [IOTDB-3816] Fix /zero bug in recover (#6664)
    
    Co-authored-by: qiaojialin <[email protected]>
---
 .../org/apache/iotdb/db/engine/flush/MemTableFlushTask.java    | 10 ++++++++--
 .../iotdb/db/writelog/recover/TsFileRecoverPerformer.java      |  2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java 
b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
index 5c7fa5e62d..5b145de275 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
@@ -96,13 +96,19 @@ public class MemTableFlushTask {
         "The memTable size of SG {} is {}, the avg series points num in chunk 
is {}, total timeseries number is {}",
         storageGroup,
         memTable.memSize(),
-        memTable.getTotalPointsNum() / memTable.getSeriesNumber(),
+        memTable.getSeriesNumber() == 0
+            ? 0
+            : memTable.getTotalPointsNum() / memTable.getSeriesNumber(),
         memTable.getSeriesNumber());
 
     long estimatedTemporaryMemSize = 0L;
     if (config.isEnableMemControl() && 
SystemInfo.getInstance().isEncodingFasterThanIo()) {
       estimatedTemporaryMemSize =
-          memTable.memSize() / memTable.getSeriesNumber() * 
config.getIoTaskQueueSizeForFlushing();
+          memTable.getSeriesNumber() == 0
+              ? 0
+              : memTable.memSize()
+                  / memTable.getSeriesNumber()
+                  * config.getIoTaskQueueSizeForFlushing();
       
SystemInfo.getInstance().applyTemporaryMemoryForFlushing(estimatedTemporaryMemSize);
     }
     long start = System.currentTimeMillis();
diff --git 
a/server/src/main/java/org/apache/iotdb/db/writelog/recover/TsFileRecoverPerformer.java
 
b/server/src/main/java/org/apache/iotdb/db/writelog/recover/TsFileRecoverPerformer.java
index 730aa75d27..b7722b67dd 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/writelog/recover/TsFileRecoverPerformer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/writelog/recover/TsFileRecoverPerformer.java
@@ -289,7 +289,7 @@ public class TsFileRecoverPerformer {
             sequence);
     logReplayer.replayLogs(supplier, virtualStorageGroupProcessor);
     try {
-      if (!recoverMemTable.isEmpty()) {
+      if (!recoverMemTable.isEmpty() && recoverMemTable.getSeriesNumber() != 
0) {
         // flush logs
         MemTableFlushTask tableFlushTask =
             new MemTableFlushTask(

Reply via email to