[
https://issues.apache.org/jira/browse/IOTDB-4405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17603909#comment-17603909
]
Bo Zhang commented on IOTDB-4405:
---------------------------------
For resolving this problem, I did below analysis:
=========================================
1) I analyzed the ext-pipe codes, and did not find root-cause.
2) I tested all 50 Tsfiles that were provided by SiChengYu and related member.
And these tsFiles can not trigger this exception.
3) I analyzed the codes of *PageHeader* related codes, find below issues.
code position: *org.apache.iotdb.tsfile.file.header.PageHeader#deserializeFrom*
!image-2022-09-14-14-42-08-582.png!
So, when 1 page is empty page, even if we call
{*}TsFileSequenceReader.readPageHeader(TSDataType, hasStatistic = true){*}, the
generated PageHeader will still have no *Statistic* info. This will affect
below codes:。
In codes :{*}sync.datasource.TsFileOpBlock#getNonAlignedChunkPoints(){*}
*!image-2022-09-14-14-47-48-743.png!*
But because we can not re-produce this problem now, and current Tsfiles can not
re-produced this issue too.
So we are not sure whether this codes issue causes this problem.
Need futhre analysis.....
> ext-pipe kafka plugin trigger NullPointerException
> --------------------------------------------------
>
> Key: IOTDB-4405
> URL: https://issues.apache.org/jira/browse/IOTDB-4405
> Project: Apache IoTDB
> Issue Type: Bug
> Components: Core/Others
> Reporter: Bo Zhang
> Assignee: Bo Zhang
> Priority: Major
> Attachments: image-2022-09-14-14-42-08-582.png,
> image-2022-09-14-14-47-48-743.png
>
>
> ext-pipe kafka plugin PR is: [https://github.com/apache/iotdb/pull/6688]
> The exception call-trace is as below:
> ===============================================
> 6201 [pool-9-IoTDB-ExtPipePlugin-Worker-kafkasink-1] ERROR
> o.a.i.d.s.e.ExtPipePlugin - Unexpected system exception
> java.lang.NullPointerException: null
> at
> org.apache.iotdb.tsfile.file.header.PageHeader.getNumOfValues(PageHeader.java:105)
> at
> org.apache.iotdb.db.sync.datasource.TsFileOpBlock.getNonAlignedChunkPoints(TsFileOpBlock.java:356)
> at
> org.apache.iotdb.db.sync.datasource.TsFileOpBlock.getChunkPoints(TsFileOpBlock.java:582)
> at
> org.apache.iotdb.db.sync.datasource.TsFileOpBlock.getOperation(TsFileOpBlock.java:691)
> at
> org.apache.iotdb.db.sync.datasource.PipeOpSgManager.getOperation(PipeOpSgManager.java:101)
> at
> org.apache.iotdb.db.sync.datasource.PipeOpManager.getOperation(PipeOpManager.java:173)
> at
> org.apache.iotdb.db.sync.externalpipe.ExtPipePlugin$DataTransmissionTask.call(ExtPipePlugin.java:496)
> at
> org.apache.iotdb.db.sync.externalpipe.ExtPipePlugin$DataTransmissionTask.call(ExtPipePlugin.java:312)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 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:750)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)