Uploaded image for project: 'Apache IoTDB'
  1. Apache IoTDB
  2. IOTDB-3261

[ cluster ] Create metadata concurrently :Internal error processing getOrCreateSchemaPartition NPE

    XMLWordPrintableJSON

Details

    • 2022-6-Cluster

    Description

      master_0523_51e9703
      3C3D
      并发创建schema,有如下异常(sg创建成功,show devices报错)
      2022-05-23 13:47:32,264 [pool-1-IoTDB-ConfigNodeRPC-Client-37] ERROR o.a.t.ProcessFunction:47 - Internal error processing getOrCreateDataPartition
      java.util.ConcurrentModificationException: null
      at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:911)
      at java.util.ArrayList$Itr.next(ArrayList.java:861)
      at org.apache.iotdb.confignode.manager.load.balancer.allocator.CopySetRegionAllocator.genWeightedRandomRegion(CopySetRegionAllocator.java:116)
      at org.apache.iotdb.confignode.manager.load.balancer.allocator.CopySetRegionAllocator.allocateRegion(CopySetRegionAllocator.java:65)
      at org.apache.iotdb.confignode.manager.load.balancer.RegionBalancer.genRegionsAllocationPlan(RegionBalancer.java:87)
      at org.apache.iotdb.confignode.manager.load.LoadManager.initializeRegions(LoadManager.java:92)
      at org.apache.iotdb.confignode.manager.PartitionManager.checkAndAllocateRegionsIfNecessary(PartitionManager.java:295)
      at org.apache.iotdb.confignode.manager.PartitionManager.getOrCreateDataPartition(PartitionManager.java:202)
      at org.apache.iotdb.confignode.manager.ConfigManager.getOrCreateDataPartition(ConfigManager.java:431)
      at org.apache.iotdb.confignode.service.thrift.ConfigNodeRPCServiceProcessor.getOrCreateDataPartition(ConfigNodeRPCServiceProcessor.java:302)
      at org.apache.iotdb.confignode.rpc.thrift.ConfigIService$Processor$getOrCreateDataPartition.getResult(ConfigIService.java:1790)
      at org.apache.iotdb.confignode.rpc.thrift.ConfigIService$Processor$getOrCreateDataPartition.getResult(ConfigIService.java:1770)
      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)
      2022-05-23 13:47:32,264 [pool-1-IoTDB-ConfigNodeRPC-Client-57] ERROR o.a.t.ProcessFunction:47 - Internal error processing getOrCreateDataPartition
      java.lang.NullPointerException: null
      at org.apache.iotdb.confignode.manager.load.balancer.allocator.CopySetRegionAllocator.intersectionCheck(CopySetRegionAllocator.java:143)
      at org.apache.iotdb.confignode.manager.load.balancer.allocator.CopySetRegionAllocator.allocateRegion(CopySetRegionAllocator.java:66)
      at org.apache.iotdb.confignode.manager.load.balancer.RegionBalancer.genRegionsAllocationPlan(RegionBalancer.java:87)
      at org.apache.iotdb.confignode.manager.load.LoadManager.initializeRegions(LoadManager.java:92)
      at org.apache.iotdb.confignode.manager.PartitionManager.checkAndAllocateRegionsIfNecessary(PartitionManager.java:295)
      at org.apache.iotdb.confignode.manager.PartitionManager.getOrCreateDataPartition(PartitionManager.java:202)
      at org.apache.iotdb.confignode.manager.ConfigManager.getOrCreateDataPartition(ConfigManager.java:431)
      at org.apache.iotdb.confignode.service.thrift.ConfigNodeRPCServiceProcessor.getOrCreateDataPartition(ConfigNodeRPCServiceProcessor.java:302)
      at org.apache.iotdb.confignode.rpc.thrift.ConfigIService$Processor$getOrCreateDataPartition.getResult(ConfigIService.java:1790)
      at org.apache.iotdb.confignode.rpc.thrift.ConfigIService$Processor$getOrCreateDataPartition.getResult(ConfigIService.java:1770)
      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)

      IoTDB> show devices;
      Msg: 500: [INTERNAL_SERVER_ERROR(500)] Exception occurred: "show devices". executeStatement failed. null

      show storage group; 结果正确。

      1. 机器信息
      192.168.130.3/4/5
      benchmark配置文件见附件(192.168.130.2 /home/benchmark/bm_0514_ee75a49 )。

      confignode log error见附件。
      datanode log error见附件。

      Attachments

        1. config.properties
          14 kB
          刘珍
        2. confignode_log_error.log
          76 kB
          刘珍
        3. datanode_log_error.log
          810 kB
          刘珍

        Activity

          People

            CRZbulabula Yongzao Dan
            刘珍 刘珍
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: