You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/11/21 07:59:14 UTC
[iotdb] branch master updated: Fix wal ut error when serializing and deserializing (#8069)
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 76e1bc032d Fix wal ut error when serializing and deserializing (#8069)
76e1bc032d is described below
commit 76e1bc032db8c22f4b64cb4bcb9d7ef678992108
Author: Alan Choo <43...@users.noreply.github.com>
AuthorDate: Mon Nov 21 15:59:09 2022 +0800
Fix wal ut error when serializing and deserializing (#8069)
---
.../org/apache/iotdb/commons/conf/CommonDescriptor.java | 5 ++++-
.../db/mpp/plan/planner/plan/node/write/InsertNode.java | 4 ++--
.../mpp/plan/planner/plan/node/write/InsertRowNode.java | 2 +-
.../iotdb/db/wal/allocation/ElasticStrategyTest.java | 17 +++++++++--------
.../db/wal/allocation/FirstCreateStrategyTest.java | 17 +++++++++--------
.../iotdb/db/wal/allocation/RoundRobinStrategyTest.java | 17 +++++++++--------
6 files changed, 34 insertions(+), 28 deletions(-)
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
index 739ad39743..869cd348a0 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
@@ -88,7 +88,10 @@ public class CommonDescriptor {
config.setSyncFolder(properties.getProperty("sync_dir", config.getSyncFolder()).trim());
config.setWalDirs(
- properties.getProperty("dn_wal_dirs", config.getWalDirs()[0]).trim().split(","));
+ properties
+ .getProperty("dn_wal_dirs", String.join(",", config.getWalDirs()))
+ .trim()
+ .split(","));
config.setCnRpcThriftCompressionEnabled(
Boolean.parseBoolean(
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertNode.java
index 5e41f00adb..c53bb9fcee 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertNode.java
@@ -218,7 +218,7 @@ public abstract class InsertNode extends WritePlanNode {
* created before calling this
*/
protected void deserializeMeasurementSchemas(DataInputStream stream) throws IOException {
- for (int i = 0; i < measurementSchemas.length; i++) {
+ for (int i = 0; i < measurements.length; i++) {
if (IoTDBDescriptor.getInstance().getConfig().isClusterMode()) {
measurementSchemas[i] = MeasurementSchema.deserializeFrom(stream);
measurements[i] = measurementSchemas[i].getMeasurementId();
@@ -231,7 +231,7 @@ public abstract class InsertNode extends WritePlanNode {
}
protected void deserializeMeasurementSchemas(ByteBuffer buffer) {
- for (int i = 0; i < measurementSchemas.length; i++) {
+ for (int i = 0; i < measurements.length; i++) {
measurementSchemas[i] = MeasurementSchema.deserializeFrom(buffer);
measurements[i] = measurementSchemas[i].getMeasurementId();
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertRowNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertRowNode.java
index 459ed6d04b..36cba297e3 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertRowNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertRowNode.java
@@ -626,7 +626,7 @@ public class InsertRowNode extends InsertNode implements WALEntryValue {
/** Serialize measurements and values, ignoring failed time series */
private void serializeMeasurementsAndValues(IWALByteBufferView buffer) {
- buffer.putInt(measurementSchemas.length - getFailedMeasurementNumber());
+ buffer.putInt(measurements.length - getFailedMeasurementNumber());
serializeMeasurementSchemasToWAL(buffer);
putDataTypesAndValues(buffer);
buffer.put((byte) (isAligned ? 1 : 0));
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/allocation/ElasticStrategyTest.java b/server/src/test/java/org/apache/iotdb/db/wal/allocation/ElasticStrategyTest.java
index 7850a11ef9..e9f6a59d9a 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/allocation/ElasticStrategyTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/allocation/ElasticStrategyTest.java
@@ -29,6 +29,7 @@ import org.apache.iotdb.db.utils.EnvironmentUtils;
import org.apache.iotdb.db.wal.node.IWALNode;
import org.apache.iotdb.db.wal.utils.WALFileUtils;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.utils.Binary;
import org.junit.After;
import org.junit.Before;
@@ -54,8 +55,8 @@ public class ElasticStrategyTest {
@Before
public void setUp() throws Exception {
prevWalDirs = commonConfig.getWalDirs();
- commonConfig.setWalDirs(walDirs);
EnvironmentUtils.envSetUp();
+ commonConfig.setWalDirs(walDirs);
}
@After
@@ -113,13 +114,13 @@ public class ElasticStrategyTest {
TSDataType.TEXT
};
- String[] columns = new String[6];
- columns[0] = 1.0 + "";
- columns[1] = 2 + "";
- columns[2] = 10000 + "";
- columns[3] = 100 + "";
- columns[4] = false + "";
- columns[5] = "hh" + 0;
+ Object[] columns = new Object[6];
+ columns[0] = 1.0;
+ columns[1] = 2.0F;
+ columns[2] = 10000L;
+ columns[3] = 100;
+ columns[4] = false;
+ columns[5] = new Binary("hh" + 0);
return new InsertRowNode(
new PlanNodeId("0"),
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/allocation/FirstCreateStrategyTest.java b/server/src/test/java/org/apache/iotdb/db/wal/allocation/FirstCreateStrategyTest.java
index 6487be1835..8b710e67eb 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/allocation/FirstCreateStrategyTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/allocation/FirstCreateStrategyTest.java
@@ -29,6 +29,7 @@ import org.apache.iotdb.db.utils.EnvironmentUtils;
import org.apache.iotdb.db.wal.node.IWALNode;
import org.apache.iotdb.db.wal.utils.WALFileUtils;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.utils.Binary;
import org.junit.After;
import org.junit.Before;
@@ -54,8 +55,8 @@ public class FirstCreateStrategyTest {
@Before
public void setUp() throws Exception {
prevWalDirs = commonConfig.getWalDirs();
- commonConfig.setWalDirs(walDirs);
EnvironmentUtils.envSetUp();
+ commonConfig.setWalDirs(walDirs);
}
@After
@@ -150,13 +151,13 @@ public class FirstCreateStrategyTest {
TSDataType.TEXT
};
- String[] columns = new String[6];
- columns[0] = 1.0 + "";
- columns[1] = 2 + "";
- columns[2] = 10000 + "";
- columns[3] = 100 + "";
- columns[4] = false + "";
- columns[5] = "hh" + 0;
+ Object[] columns = new Object[6];
+ columns[0] = 1.0;
+ columns[1] = 2.0F;
+ columns[2] = 10000L;
+ columns[3] = 100;
+ columns[4] = false;
+ columns[5] = new Binary("hh" + 0);
return new InsertRowNode(
new PlanNodeId("0"),
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/allocation/RoundRobinStrategyTest.java b/server/src/test/java/org/apache/iotdb/db/wal/allocation/RoundRobinStrategyTest.java
index bcd1f7dd9a..1b74cc1132 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/allocation/RoundRobinStrategyTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/allocation/RoundRobinStrategyTest.java
@@ -29,6 +29,7 @@ import org.apache.iotdb.db.utils.EnvironmentUtils;
import org.apache.iotdb.db.wal.node.IWALNode;
import org.apache.iotdb.db.wal.utils.WALFileUtils;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.utils.Binary;
import org.junit.After;
import org.junit.Before;
@@ -54,8 +55,8 @@ public class RoundRobinStrategyTest {
@Before
public void setUp() throws Exception {
prevWalDirs = commonConfig.getWalDirs();
- commonConfig.setWalDirs(walDirs);
EnvironmentUtils.envSetUp();
+ commonConfig.setWalDirs(walDirs);
}
@After
@@ -113,13 +114,13 @@ public class RoundRobinStrategyTest {
TSDataType.TEXT
};
- String[] columns = new String[6];
- columns[0] = 1.0 + "";
- columns[1] = 2 + "";
- columns[2] = 10000 + "";
- columns[3] = 100 + "";
- columns[4] = false + "";
- columns[5] = "hh" + 0;
+ Object[] columns = new Object[6];
+ columns[0] = 1.0;
+ columns[1] = 2.0F;
+ columns[2] = 10000L;
+ columns[3] = 100;
+ columns[4] = false;
+ columns[5] = new Binary("hh" + 0);
return new InsertRowNode(
new PlanNodeId("0"),