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)