刘珍 created IOTDB-3121: ------------------------- Summary: [ ICachedMNodeContainer.java ] MNodeContainers$EmptyContainer cannot be cast to org.apache.iotdb.db.metadata.mtree.store.disk.ICachedMNodeContainer Key: IOTDB-3121 URL: https://issues.apache.org/jira/browse/IOTDB-3121 Project: Apache IoTDB Issue Type: Bug Components: Core/Schema Manager Affects Versions: 0.14.0-SNAPSHOT Reporter: 刘珍 Assignee: ZhaoXin Attachments: config.properties.1, config.properties.2
master_0509_bc6c4af 问题描述: 2用户并发创建schema : 2022-05-09 11:20:55,548 [pool-16-IoTDB-RPC-Client-4] WARN o.a.i.d.u.ErrorHandlingUtils:61 - Status code: INTERNAL_SERVER_ERROR(500), operation: executeNonQueryPlan failed java.lang.ClassCastException: org.apache.iotdb.db.metadata.mnode.container.MNodeContainers$EmptyContainer cannot be cast to org.apache.iotdb.db.metadata.mtree.store.disk.ICachedMNodeContainer at org.apache.iotdb.db.metadata.mtree.store.disk.ICachedMNodeContainer.getBelongedContainer(ICachedMNodeContainer.java:78) at org.apache.iotdb.db.metadata.mtree.store.disk.cache.CacheManager.updateCacheStatusAfterAppend(CacheManager.java:124) at org.apache.iotdb.db.metadata.mtree.store.CachedMTreeStore.addChild(CachedMTreeStore.java:201) at org.apache.iotdb.db.metadata.mtree.MTreeBelowSGCachedImpl.createTimeseriesWithPinnedReturn(MTreeBelowSGCachedImpl.java:225) at org.apache.iotdb.db.metadata.schemaregion.SchemaRegionSchemaFileImpl.createTimeseries(SchemaRegionSchemaFileImpl.java:466) at org.apache.iotdb.db.metadata.LocalSchemaProcessor.createTimeseries(LocalSchemaProcessor.java:290) at org.apache.iotdb.db.metadata.LocalSchemaProcessor.createTimeseries(LocalSchemaProcessor.java:285) at org.apache.iotdb.db.qp.executor.PlanExecutor.createTimeSeries(PlanExecutor.java:1995) at org.apache.iotdb.db.qp.executor.PlanExecutor.createMultiTimeSeries(PlanExecutor.java:2034) at org.apache.iotdb.db.qp.executor.PlanExecutor.processNonQuery(PlanExecutor.java:339) at org.apache.iotdb.db.service.basic.StandaloneServiceProvider.executeNonQuery(StandaloneServiceProvider.java:53) at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.executeNonQueryPlan(TSServiceImpl.java:2066) at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.createMultiTimeseries(TSServiceImpl.java:1858) at org.apache.iotdb.service.rpc.thrift.TSIService$Processor$createMultiTimeseries.getResult(TSIService.java:3203) at org.apache.iotdb.service.rpc.thrift.TSIService$Processor$createMultiTimeseries.getResult(TSIService.java:3183) 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.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 复现流程 1. 机器 fit 192.168.130.1 (8C32G) /home/iotdb/db/master_0509_bc6c4af MAX_HEAP_SIZE="20G" MAX_DIRECT_MEMORY_SIZE="6G" schema_engine_mode=Schema_File fit 192.168.130.2 /home/benchmark/bm_20220322 2. bm 配置文件 放在/home/benchmark/bm_20220322/conf 3. 启动iotdb 4. 运行bm /home/benchmark/bm_20220322下运行run.sh cat run.sh #!/bin/bash time1=`date +%s` cp -rp conf/config.properties.1 conf/config.properties ./benchmark.sh > 1.out & cp -rp conf/config.properties.2 conf/config.properties ./benchmark.sh > 2.out & wait time2=`date +%s` time=$(($time2-$time1)) echo "bing fa run : ${time} seconds." >> time_res.txt -- This message was sent by Atlassian Jira (v8.20.7#820007)