You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "刘珍 (Jira)" <ji...@apache.org> on 2022/07/05 07:12:00 UTC
[jira] [Reopened] (IOTDB-3121) [ ICachedMNodeContainer.java ] MNodeContainers$EmptyContainer cannot be cast to org.apache.iotdb.db.metadata.mtree.store.disk.ICachedMNodeContainer
[ https://issues.apache.org/jira/browse/IOTDB-3121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
刘珍 reopened IOTDB-3121:
-----------------------
sf_tree_seg分支 eadb383df889a7040b30f75ee443c2a8552856d5
单机版
改一下并发创建元数据的脚本(加2行echo "hello"):
#!/bin/bash
time1=`date +%s`
cp -rp conf/config.properties.1 conf/config.properties
./benchmark.sh > 1.out &
echo "hello"
echo "hello"
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
还有如下异常:
2022-07-05 15:07:43,635 [pool-16-IoTDB-RPC-Client-4] WARN o.a.i.d.u.ErrorHandlingUtils:62 - 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:202)
at org.apache.iotdb.db.metadata.mtree.MTreeBelowSGCachedImpl.createTimeseriesWithPinnedReturn(MTreeBelowSGCachedImpl.java:225)
at org.apache.iotdb.db.metadata.schemaregion.SchemaRegionSchemaFileImpl.createTimeseries(SchemaRegionSchemaFileImpl.java:482)
at org.apache.iotdb.db.metadata.LocalSchemaProcessor.createTimeseries(LocalSchemaProcessor.java:291)
at org.apache.iotdb.db.metadata.LocalSchemaProcessor.createTimeseries(LocalSchemaProcessor.java:286)
at org.apache.iotdb.db.qp.executor.PlanExecutor.createTimeSeries(PlanExecutor.java:2037)
at org.apache.iotdb.db.qp.executor.PlanExecutor.createMultiTimeSeries(PlanExecutor.java:2076)
at org.apache.iotdb.db.qp.executor.PlanExecutor.processNonQuery(PlanExecutor.java:344)
at org.apache.iotdb.db.service.basic.StandaloneServiceProvider.executeNonQuery(StandaloneServiceProvider.java:53)
at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.executeNonQueryPlan(TSServiceImpl.java:2108)
at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.createMultiTimeseries(TSServiceImpl.java:1889)
at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$createMultiTimeseries.getResult(IClientRPCService.java:3203)
at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$createMultiTimeseries.getResult(IClientRPCService.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)
> [ 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
> Priority: Major
> Labels: pull-request-available
> Attachments: config.properties.1, config.properties.2, screenshot-1.png
>
>
> 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.10#820010)