apache / apache/iotdb

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

Ouverte
#9,569 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Java
Étoiles
6.4k
Forks
1.2k
Merge moyen
1 j 23 h
PR mergées (30 j)
115

Description

### 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!

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par TsPrimitiveType.getBinary() et le chemin d’appel via SeriesScanUtil.hasNextOverlappedPage(), isExistOverlappedPage() et hasNextPage(). Suivez la manière dont le lecteur de compaction atteint ces méthodes dans SeriesDataBlockReader et ReadPointCompactionPerformer, puis vérifiez que la compaction cross-space s’achève sans UnsupportedOperationException.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
databases
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.