apache / apache/iotdb

[Bug] java.lang.UnsupportedOperationException: getBinary() is not supported for current sub-class

Đang mở
#9,569 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Java
Star
6.4k
Fork
1.2k
Merge trung bình
1 ngày 23 giờ
Pull request đã merge (30 ngày)
115

Mô tả

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.

### Version

iotdb-1.0.1-standalone

### Describe the bug and provide the minimal reproduce step

运行一段时间后报java.lang.UnsupportedOperationException: getBinary() is not supported for current sub-class 是否是bug

5-7-0-0.tsfile, status: COMPACTING, file is /iotdb/data/datanode/data/unsequence/root.tb/3/2771/1679637505634-8-0-0.tsfile, status: COMPACTING] . Sequence files size is 1.1938400268554688 MB, unsequence file size is 1.1938400268554688 MB, total size is 2.3876800537109375 MB
2023-04-09 18:00:16,452 [pool-36-IoTDB-Sub-Compaction-15] ERROR o.a.i.c.c.t.WrappedThreadPoolExecutor:104 - Exception in thread pool org.apache.iotdb.threadpool:type=Sub-Compaction
java.lang.NullPointerException: null
2023-04-09 18:00:16,452 [pool-36-IoTDB-Sub-Compaction-22] ERROR o.a.i.c.c.t.WrappedThreadPoolExecutor:104 - Exception in thread pool org.apache.iotdb.threadpool:type=Sub-Compaction
java.lang.NullPointerException: null
2023-04-09 18:00:16,452 [pool-36-IoTDB-Sub-Compaction-39] ERROR o.a.i.c.c.t.WrappedThreadPoolExecutor:104 - Exception in thread pool org.apache.iotdb.threadpool:type=Sub-Compaction
java.lang.UnsupportedOperationException: getBinary() is not supported for current sub-class
at org.apache.iotdb.tsfile.utils.TsPrimitiveType.getBinary(TsPrimitiveType.java:103)
at org.apache.iotdb.db.mpp.execution.operator.source.SeriesScanUtil.hasNextOverlappedPage(SeriesScanUtil.java:784)
at org.apache.iotdb.db.mpp.execution.operator.source.SeriesScanUtil.isExistOverlappedPage(SeriesScanUtil.java:458)
at org.apache.iotdb.db.mpp.execution.operator.source.SeriesScanUtil.hasNextPage(SeriesScanUtil.java:436)
at org.apache.iotdb.db.engine.compaction.reader.SeriesDataBlockReader.readPageData(SeriesDataBlockReader.java:144)
at org.apache.iotdb.db.engine.compaction.reader.SeriesDataBlockReader.readChunkData(SeriesDataBlockReader.java:136)
at org.apache.iotdb.db.engine.compaction.reader.SeriesDataBlockReader.hasNextBatch(SeriesDataBlockReader.java:112)
at org.apache.iotdb.db.engine.compaction.performer.impl.ReadPointCompactionPerformer.writeWithReader(ReadPointCompactionPerformer.java:286)
at org.apache.iotdb.db.engine.compaction.cross.rewrite.task.ReadPointPerformerSubTask.call(ReadPointPerformerSubTask.java:89)
at org.apache.iotdb.db.engine.compaction.cross.rewrite.task.ReadPointPerformerSubTask.call(ReadPointPerformerSubTask.java:44)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
2023-04-09 18:00:16,452 [pool-35-IoTDB-Compaction-8] ERROR o.a.i.d.e.c.c.CrossSpaceCompactionTask:231 - root.tb-3 [Compaction] Meet errors in cross space compaction.
java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException: getBinary() is not supported for current sub-class
at java.base/java.util.concurrent.FutureTask.report(Unknown Source)
at java.base/java.util.concurrent.FutureTask.get(Unknown Source)
at org.apache.iotdb.db.engine.compaction.performer.impl.ReadPointCompactionPerformer.compactNonAlignedSeries(ReadPointCompactionPerformer.java:234)
at org.apache.iotdb.db.engine.compaction.performer.impl.ReadPointCompactionPerformer.perform(ReadPointCompactionPerformer.java:125)
at org.apache.iotdb.db.engine.compaction.cross.CrossSpaceCompactionTask.doCompaction(CrossSpaceCompactionTask.java:157)
at org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask.start(AbstractCompactionTask.java:76)
at org.apache.iotdb.db.engine.compaction.CompactionWorker.run(CompactionWorker.java:66)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.UnsupportedOperationException: getBinary() is not supported for current sub-class
at org.apache.iotdb.tsfile.utils.TsPrimitiveType.getBinary(TsPrimitiveType.java:103)
at org.apache.iotdb.db.mpp.execution.operator.source.SeriesScanUtil.hasNextOverlappedPage(SeriesScanUtil.java:784)
at org.apache.iotdb.db.mpp.execution.operator.source.SeriesScanUtil.isExistOverlappedPage(SeriesScanUtil.java:458)
at org.apache.iotdb.db.mpp.execution.operator.source.SeriesScanUtil.hasNextPage(SeriesScanUtil.java:436)
at org.apache.iotdb.db.engine.compaction.reader.SeriesDataBlockReader.readPageData(SeriesDataBlockReader.java:144)
at org.apache.iotdb.db.engine.compaction.reader.SeriesDataBlockReader.readChunkData(SeriesDataBlockReader.java:136)
at org.apache.iotdb.db.engine.compaction.reader.SeriesDataBlockReader.hasNextBatch(SeriesDataBlockReader.java:112)
at org.apache.iotdb.db.engine.compaction.performer.impl.ReadPointCompactionPerformer.writeWithReader(ReadPointCompactionPerformer.java:286)
at org.apache.iotdb.db.engine.compaction.cross.rewrite.task.ReadPointPerformerSubTask.call(ReadPointPerformerSubTask.java:89)
at org.apache.iotdb.db.engine.compaction.cross.rewrite.task.ReadPointPerformerSubTask.call(ReadPointPerformerSubTask.java:44)
... 4 common frames omitted

### What did you expect to see?

1

### What did you see instead?

1

### Anything else?

_No response_

### Are you willing to submit a PR?

- [X] I'm willing to submit a PR!

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với TsPrimitiveType.getBinary() và đường dẫn gọi qua SeriesScanUtil.hasNextOverlappedPage(), isExistOverlappedPage() và hasNextPage(). Theo dõi cách compaction reader đi tới các phương thức này trong SeriesDataBlockReader và ReadPointCompactionPerformer, sau đó xác minh rằng cross-space compaction hoàn tất mà không có UnsupportedOperationException.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java
Lĩnh vực
databases
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.