[ https://issues.apache.org/jira/browse/HIVE-26709?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ayush Saxena resolved HIVE-26709. --------------------------------- Fix Version/s: 4.0.0 Resolution: Fixed > Iceberg: Count(*) fails for V2 tables with delete files. > -------------------------------------------------------- > > Key: HIVE-26709 > URL: https://issues.apache.org/jira/browse/HIVE-26709 > Project: Hive > Issue Type: Bug > Reporter: Ayush Saxena > Assignee: Ayush Saxena > Priority: Major > Labels: pull-request-available > Fix For: 4.0.0 > > Time Spent: 0.5h > Remaining Estimate: 0h > > Steps to Repro. > * Create a v2 table > * Add some Data > * Delete a Row > * Do a count(*) on the table > *Reason:* Missing RoaringBitmap dependency, Iceberg now requires it during > runtime for Delete files filtering > StackTrace: > {noformat} > Caused by: java.lang.ClassNotFoundException: > org.roaringbitmap.longlong.Roaring64Bitmap > at java.net.URLClassLoader.findClass(URLClassLoader.java:387) > at java.lang.ClassLoader.loadClass(ClassLoader.java:418) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) > at java.lang.ClassLoader.loadClass(ClassLoader.java:351) > ... 42 more > , errorMessage=Cannot recover from this error:java.lang.NoClassDefFoundError: > org/roaringbitmap/longlong/Roaring64Bitmap > at > org.apache.iceberg.deletes.BitmapPositionDeleteIndex.<init>(BitmapPositionDeleteIndex.java:28) > at org.apache.iceberg.deletes.Deletes.toPositionIndex(Deletes.java:102) > at org.apache.iceberg.deletes.Deletes.toPositionIndex(Deletes.java:97) > at > org.apache.iceberg.data.DeleteFilter.applyPosDeletes(DeleteFilter.java:229) > at org.apache.iceberg.data.DeleteFilter.filter(DeleteFilter.java:132) > at > org.apache.iceberg.mr.mapreduce.IcebergInputFormat$IcebergRecordReader.open(IcebergInputFormat.java:376) > at > org.apache.iceberg.mr.mapreduce.IcebergInputFormat$IcebergRecordReader.nextTask(IcebergInputFormat.java:266) > at > org.apache.iceberg.mr.mapreduce.IcebergInputFormat$IcebergRecordReader.initialize(IcebergInputFormat.java:262) > at > org.apache.iceberg.mr.mapred.AbstractMapredIcebergRecordReader.<init>(AbstractMapredIcebergRecordReader.java:40) > at > org.apache.iceberg.mr.mapred.MapredIcebergInputFormat$MapredIcebergRecordReader.<init>(MapredIcebergInputFormat.java:89) > at > org.apache.iceberg.mr.mapred.MapredIcebergInputFormat.getRecordReader(MapredIcebergInputFormat.java:79) > at > org.apache.iceberg.mr.hive.HiveIcebergInputFormat.getRecordReader(HiveIcebergInputFormat.java:169) > at > org.apache.hadoop.hive.ql.io.RecordReaderWrapper.create(RecordReaderWrapper.java:72) > at > org.apache.hadoop.hive.ql.io.HiveInputFormat.getRecordReader(HiveInputFormat.java:461) > at > org.apache.hadoop.mapred.split.TezGroupedSplitsInputFormat$TezGroupedSplitsRecordReader.initNextRecordReader(TezGroupedSplitsInputFormat.java:203) > at > org.apache.hadoop.mapred.split.TezGroupedSplitsInputFormat$TezGroupedSplitsRecordReader.<init>(TezGroupedSplitsInputFormat.java:145) > at > org.apache.hadoop.mapred.split.TezGroupedSplitsInputFormat.getRecordReader(TezGroupedSplitsInputFormat.java:111) > at > org.apache.tez.mapreduce.lib.MRReaderMapred.setupOldRecordReader(MRReaderMapred.java:164) > at > org.apache.tez.mapreduce.lib.MRReaderMapred.setSplit(MRReaderMapred.java:83) > at > org.apache.tez.mapreduce.input.MRInput.initFromEventInternal(MRInput.java:706) > at > org.apache.tez.mapreduce.input.MRInput.initFromEvent(MRInput.java:665) > at > org.apache.tez.mapreduce.input.MRInputLegacy.checkAndAwaitRecordReaderInitialization(MRInputLegacy.java:150) > at > org.apache.tez.mapreduce.input.MRInputLegacy.init(MRInputLegacy.java:114) > at > org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.getMRInput(MapRecordProcessor.java:543) > at > org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.init(MapRecordProcessor.java:189) > at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:296) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)