You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "ZhaoXin (Jira)" <ji...@apache.org> on 2022/03/16 04:05:00 UTC

[jira] [Commented] (IOTDB-2750) java.io.IOException: Failed to parser mlog.bin for err:java.lang.NullPointerException

    [ https://issues.apache.org/jira/browse/IOTDB-2750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17507331#comment-17507331 ] 

ZhaoXin commented on IOTDB-2750:
--------------------------------

Reason of the ISSUE:

During recovery from mlog.bin, MManager::MLogWrite is not initialized since there is no need to write a new entry into mlog, which directly causes the NPE of this issue. This may be caused by nonstandard usage of Templates or originate from disharmonious implementation between MManager and TemplateManager. We will make a thorough refactor to these modules soon.

To fix this issue, we enhanced the check statement before writing entry into mlog.

> java.io.IOException: Failed to parser mlog.bin for err:java.lang.NullPointerException
> -------------------------------------------------------------------------------------
>
>                 Key: IOTDB-2750
>                 URL: https://issues.apache.org/jira/browse/IOTDB-2750
>             Project: Apache IoTDB
>          Issue Type: Bug
>          Components: Core/Schema Manager
>    Affects Versions: 0.13.0-SNAPSHOT
>            Reporter: 刘珍
>            Assignee: ZhaoXin
>            Priority: Major
>         Attachments: 9_config.properties, iotdb-engine.properties, iotdb-env.sh
>
>
> rel/0.13  b0d0af35125856a0b22fd2df4b876cb540558274
> 问题描述:
> 对齐序列+template 的数据备份,启动iotdb报错:
> 2022-03-16 10:00:35,279 [main] ERROR o.a.i.d.metadata.MManager:295 - Cannot recover all MTree from file, we try to recover as possible as we can
> java.io.IOException: Failed to parser mlog.bin for err:java.lang.NullPointerException
>         at org.apache.iotdb.db.metadata.MManager.initFromLog(MManager.java:382)
>         at org.apache.iotdb.db.metadata.MManager.init(MManager.java:289)
>         at org.apache.iotdb.db.service.IoTDB.initMManager(IoTDB.java:203)
>         at org.apache.iotdb.db.service.IoTDB.setUp(IoTDB.java:125)
>         at org.apache.iotdb.db.service.IoTDB.active(IoTDB.java:108)
>         at org.apache.iotdb.db.service.IoTDB.main(IoTDB.java:78)
> ~
> 只能看到sg的信息,设备和序列的个数为0(实际有2000个设备,200万个序列).
> 1. 数据备份路径
> 私有云:172.20.70.14
> /data/iotdb_data/9_no-id-table_aligned_temp
> 2. 这个数据是怎么生成的
> benchmark 使用master ,配置文件见附件。
> 数据库的配置文件见附件。
> benchmark写入完成执行flush,benchmark执行的也有查询操作,查询报错:
> 2022-03-16 01:42:58,710 [pool-13-IoTDB-RPC-Client-53] ERROR o.a.i.d.u.ErrorHandlingUtils:83 - Status code: 411, Query Statement: "SELECT s_647 FROM root.test.g_2.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.d_1102.vector WHERE time >= 1537500050000 AND time <= 1537500300000 AND root.test.g_2.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.d_1102.s_647 > -5". executeQueryStatement failed
> org.apache.iotdb.db.exception.query.LogicalOptimizeException: Unknown time series root.test.g_2.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.hello1234567890hello.d_1102.s_647 in `where clause`
>         at org.apache.iotdb.db.qp.strategy.optimizer.ConcatPathOptimizer.removeWildcardsInConcatPaths(ConcatPathOptimizer.java:376)
>         at org.apache.iotdb.db.qp.strategy.optimizer.ConcatPathOptimizer.concatFilterAndRemoveWildcards(ConcatPathOptimizer.java:306)
>         at org.apache.iotdb.db.qp.strategy.optimizer.ConcatPathOptimizer.concatFilterAndRemoveWildcards(ConcatPathOptimizer.java:287)
>         at org.apache.iotdb.db.qp.strategy.optimizer.ConcatPathOptimizer.concatFilterAndRemoveWildcards(ConcatPathOptimizer.java:269)
>         at org.apache.iotdb.db.qp.strategy.optimizer.ConcatPathOptimizer.transform(ConcatPathOptimizer.java:80)
>         at org.apache.iotdb.db.qp.Planner.optimizeQueryOperator(Planner.java:153)
>         at org.apache.iotdb.db.qp.Planner.logicalOptimize(Planner.java:136)
>         at org.apache.iotdb.db.qp.Planner.generatePhysicalPlanFromOperator(Planner.java:113)
>         at org.apache.iotdb.db.qp.Planner.parseSQLToPhysicalPlan(Planner.java:63)
>         at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.executeQueryStatement(TSServiceImpl.java:652)
>         at org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeQueryStatement.getResult(TSIService.java:2903)
>         at org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeQueryStatement.getResult(TSIService.java:2883)
>         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)
> flush之后,重启iotdb,出现问题描述中的报错信息。



--
This message was sent by Atlassian Jira
(v8.20.1#820001)