刘珍 created IOTDB-4181: ------------------------- Summary: insertTablet failed :java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 Key: IOTDB-4181 URL: https://issues.apache.org/jira/browse/IOTDB-4181 Project: Apache IoTDB Issue Type: Bug Components: mpp-cluster Affects Versions: 0.14.0-SNAPSHOT Reporter: 刘珍 Assignee: Haonan Hou Attachments: read_only_create_metadata_1.prop, read_only_create_metadata_2.prop, read_only_create_metadata_3.prop
master_0818_e6bd879 3副本3C3D,创建元数据(发生磁盘空间不足): 2022-08-18 17:35:41,202 [192.168.10.72_50010@group-000200000000-StateMachineUpdater] INFO o.a.i.d.c.s.SchemaRegionStateMachine:72 - Execute write plan in Schema2022-08-18 17:40:34,949 [pool-23-IoTDB-RPC-Client-70] WARN o.a.i.d.u.ErrorHandlingUtils:62 - Status code:{color:#DE350B} EXECUTE_STATEMENT_ERROR(400), operation: insertTablet failed java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at {color}org.apache.iotdb.db.mpp.plan.statement.crud.InsertTabletStatement.getTimePartitionSlots(InsertTabletStatement.java:76) at org.apache.iotdb.db.mpp.plan.analyze.AnalyzeVisitor.visitInsertTablet(AnalyzeVisitor.java:1263) at org.apache.iotdb.db.mpp.plan.analyze.AnalyzeVisitor.visitInsertTablet(AnalyzeVisitor.java:123) at org.apache.iotdb.db.mpp.plan.statement.crud.InsertTabletStatement.accept(InsertTabletStatement.java:106) at org.apache.iotdb.db.mpp.plan.statement.StatementVisitor.process(StatementVisitor.java:84) at org.apache.iotdb.db.mpp.plan.analyze.Analyzer.analyze(Analyzer.java:48) at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.analyze(QueryExecution.java:232) at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.<init>(QueryExecution.java:136) at org.apache.iotdb.db.mpp.plan.Coordinator.createQueryExecution(Coordinator.java:100) at org.apache.iotdb.db.mpp.plan.Coordinator.execute(Coordinator.java:133) at org.apache.iotdb.db.mpp.plan.Coordinator.execute(Coordinator.java:160) at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.insertTablet(ClientRPCServiceImpl.java:981) at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$insertTablet.getResult(IClientRPCService.java:3520) at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$insertTablet.getResult(IClientRPCService.java:3500) at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38) at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38) at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) 复现流程 1. 192.168.10.72/73/74 48核384G benchmark 在71 2. 数据库配置参数 confignode: MAX_HEAP_SIZE="8G" schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus data_region_consensus_protocol_class=org.apache.iotdb.consensus.multileader.MultiLeaderConsensus schema_replication_factor=3 data_replication_factor=3 datanode: MAX_HEAP_SIZE="256G" 3. benchmark运行附件中的脚本(串行) 创建元数据 创建元数据过程中有ip72磁盘空间不足(不置为read-only,是个bug),日志: EXECUTE_STATEMENT_ERROR(400), operation: insertTablet failed java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 -- This message was sent by Atlassian Jira (v8.20.10#820010)