ebyhr opened a new pull request, #16736:
URL: https://github.com/apache/iceberg/pull/16736
`ResolvingFileIO` throws `NoClassDefFoundError` in Trino / Starburst because
the project disallows Hadoop dependency as #14284 explains. Now,
HadoopConfigurable extends `org.apache.iceberg.hadoop.Configurable` instead of
`org.apache.hadoop.conf.Configurable`.
```
java.util.concurrent.CompletionException: io.trino.spi.TrinoException: Error
processing metadata for table jcf_scan_plan_test.test_table_1
at
java.base/java.util.concurrent.CompletableFuture.wrapInCompletionException(CompletableFuture.java:323)
at
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:359)
at
java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:364)
at
java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:1015)
at
java.base/java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:995)
at
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:531)
at
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2221)
at io.airlift.concurrent.MoreFutures$2.onFailure(MoreFutures.java:495)
at
com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1111)
at
com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30)
at
com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1021)
at
com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:784)
at
com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:533)
at
com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.afterRanInterruptiblyFailure(TrustedListenableFutureTask.java:138)
at
com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:89)
at
com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: io.trino.spi.TrinoException: Error processing metadata for table
schema.table
at
io.trino.plugin.iceberg.IcebergExceptions.translateMetadataException(IcebergExceptions.java:54)
at
io.trino.plugin.iceberg.IcebergSplitSource.lambda$getNextBatch$2(IcebergSplitSource.java:282)
at
java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:1011)
... 15 more
Caused by: java.lang.IllegalArgumentException: Cannot initialize FileIO
implementation org.apache.iceberg.io.ResolvingFileIO: Cannot find constructor
for interface org.apache.iceberg.io.FileIO
Missing org.apache.iceberg.io.ResolvingFileIO
[java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configurable]
at org.apache.iceberg.CatalogUtil.loadFileIO(CatalogUtil.java:407)
at
org.apache.iceberg.rest.RESTTableScan.scanFileIO(RESTTableScan.java:238)
at
org.apache.iceberg.rest.RESTTableScan.planTableScan(RESTTableScan.java:213)
at
org.apache.iceberg.rest.RESTTableScan.planFiles(RESTTableScan.java:196)
at
io.trino.plugin.iceberg.IcebergSplitSource.planFiles(IcebergSplitSource.java:371)
at
io.trino.plugin.iceberg.IcebergSplitSource.getNextBatchInternal(IcebergSplitSource.java:305)
at
io.trino.plugin.iceberg.IcebergSplitSource.lambda$getNextBatch$1(IcebergSplitSource.java:277)
at
com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:128)
at
com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
... 4 more
Caused by: java.lang.NoSuchMethodException: Cannot find constructor for
interface org.apache.iceberg.io.FileIO
Missing org.apache.iceberg.io.ResolvingFileIO
[java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configurable]
at
org.apache.iceberg.common.DynConstructors.buildCheckedException(DynConstructors.java:253)
at
org.apache.iceberg.common.DynConstructors$Builder.buildChecked(DynConstructors.java:211)
at org.apache.iceberg.CatalogUtil.loadFileIO(CatalogUtil.java:404)
... 12 more
Suppressed: java.lang.NoClassDefFoundError:
org/apache/hadoop/conf/Configurable
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962)
at
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144)
at
java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:454)
at
java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:367)
at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:557)
at
io.trino.server.PluginClassLoader.loadClass(PluginClassLoader.java:124)
at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962)
at
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144)
at
java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:454)
at
java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:367)
at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:557)
at
io.trino.server.PluginClassLoader.loadClass(PluginClassLoader.java:124)
at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:547)
at
org.apache.iceberg.common.DynConstructors$Builder.classForName(DynConstructors.java:224)
at
org.apache.iceberg.common.DynConstructors$Builder.impl(DynConstructors.java:145)
at
org.apache.iceberg.CatalogUtil.loadFileIO(CatalogUtil.java:403)
... 12 more
Caused by: java.lang.ClassNotFoundException:
org.apache.hadoop.conf.Configurable
at
java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:377)
at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:557)
at
io.trino.server.PluginClassLoader.loadClass(PluginClassLoader.java:124)
at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
... 33 more
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]