S3 Tables tests in Trino with 1.9.0 nightly release throws
ClassCastException (RESTSigV4AuthSession → OAuth2Util$AuthSession). The
test works fine in 1.8.1.
I’m going to check if adjusting our test settings based on this PR (
https://github.com/apache/iceberg/pull/11995) can fix the issue.

https://github.com/trinodb/trino/actions/runs/13960201796/job/39080056606?pr=25331
Error:
 io.trino.plugin.iceberg.catalog.rest.TestIcebergS3TablesConnectorSmokeTest
-- Time elapsed: 3.038 s <<< ERROR!
io.trino.testing.QueryFailedException: class
org.apache.iceberg.aws.RESTSigV4AuthSession cannot be cast to class
org.apache.iceberg.rest.auth.OAuth2Util$AuthSession
(org.apache.iceberg.aws.RESTSigV4AuthSession and
org.apache.iceberg.rest.auth.OAuth2Util$AuthSession are in unnamed module
of loader 'app')
at
io.trino.testing.AbstractTestingTrinoClient.execute(AbstractTestingTrinoClient.java:138)
at
io.trino.testing.DistributedQueryRunner.executeInternal(DistributedQueryRunner.java:565)
at
io.trino.testing.DistributedQueryRunner.execute(DistributedQueryRunner.java:548)
at io.trino.testing.QueryRunner.execute(QueryRunner.java:82)
at
io.trino.plugin.iceberg.SchemaInitializer.accept(SchemaInitializer.java:54)
at
io.trino.plugin.iceberg.IcebergQueryRunner$Builder.lambda$build$3(IcebergQueryRunner.java:178)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at
io.trino.plugin.iceberg.IcebergQueryRunner$Builder.build(IcebergQueryRunner.java:178)
at
io.trino.plugin.iceberg.catalog.rest.TestIcebergS3TablesConnectorSmokeTest.createQueryRunner(TestIcebergS3TablesConnectorSmokeTest.java:83)
at
io.trino.testing.AbstractTestQueryFramework.init(AbstractTestQueryFramework.java:119)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
at
java.base/java.util.concurrent.ForkJoinPool$WorkQueue.tryRemoveAndExec(ForkJoinPool.java:1501)
at
java.base/java.util.concurrent.ForkJoinPool.helpJoin(ForkJoinPool.java:2274)
at
java.base/java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:495)
at java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:662)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
at
java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1460)
at
java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2036)
at
java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:189)
Suppressed: java.lang.Exception: SQL: CREATE SCHEMA IF NOT EXISTS "tpch"
at
io.trino.testing.DistributedQueryRunner.executeInternal(DistributedQueryRunner.java:572)
... 18 more
Caused by: java.lang.ClassCastException: class
org.apache.iceberg.aws.RESTSigV4AuthSession cannot be cast to class
org.apache.iceberg.rest.auth.OAuth2Util$AuthSession
(org.apache.iceberg.aws.RESTSigV4AuthSession and
org.apache.iceberg.rest.auth.OAuth2Util$AuthSession are in unnamed module
of loader 'app')
at
org.apache.iceberg.rest.auth.OAuth2Manager.contextualSession(OAuth2Manager.java:142)
at
org.apache.iceberg.rest.auth.OAuth2Manager.contextualSession(OAuth2Manager.java:40)
at
org.apache.iceberg.aws.RESTSigV4AuthManager.contextualSession(RESTSigV4AuthManager.java:68)
at
org.apache.iceberg.rest.RESTSessionCatalog.loadNamespaceMetadata(RESTSessionCatalog.java:608)
at
org.apache.iceberg.catalog.SessionCatalog.namespaceExists(SessionCatalog.java:358)
at
org.apache.iceberg.rest.RESTSessionCatalog.namespaceExists(RESTSessionCatalog.java:595)
at
io.trino.plugin.iceberg.catalog.rest.TrinoRestCatalog.namespaceExists(TrinoRestCatalog.java:162)
at
io.trino.plugin.iceberg.IcebergMetadata.schemaExists(IcebergMetadata.java:512)
at
io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.schemaExists(ClassLoaderSafeConnectorMetadata.java:193)
at
io.trino.tracing.TracingConnectorMetadata.schemaExists(TracingConnectorMetadata.java:125)
at
io.trino.metadata.MetadataManager.lambda$schemaExists$1(MetadataManager.java:248)
at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:215)
at
java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:1034)
at
java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:147)
at
java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:588)
at
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:574)
at
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
at
java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at
java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
at
java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:672)
at io.trino.metadata.MetadataManager.schemaExists(MetadataManager.java:248)
at io.trino.tracing.TracingMetadata.schemaExists(TracingMetadata.java:165)
at
io.trino.execution.CreateSchemaTask.internalExecute(CreateSchemaTask.java:119)
at io.trino.execution.CreateSchemaTask.execute(CreateSchemaTask.java:82)
at io.trino.execution.CreateSchemaTask.execute(CreateSchemaTask.java:54)
at
io.trino.execution.DataDefinitionExecution.start(DataDefinitionExecution.java:152)
at io.trino.execution.SqlQueryManager.createQuery(SqlQueryManager.java:272)
at
io.trino.dispatcher.LocalDispatchQuery.startExecution(LocalDispatchQuery.java:150)
at
io.trino.dispatcher.LocalDispatchQuery.lambda$waitForMinimumWorkers$2(LocalDispatchQuery.java:134)
at
io.airlift.concurrent.MoreFutures.lambda$addSuccessCallback$12(MoreFutures.java:570)
at io.airlift.concurrent.MoreFutures$3.onSuccess(MoreFutures.java:545)
at
com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1139)
at io.trino.$gen.Trino_testversion____20250320_014939_2038.run(Unknown
Source)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1575)

BR,
Yuya

On Wed, Mar 19, 2025 at 12:38 AM Manu Zhang <owenzhang1...@gmail.com> wrote:

> Hi Ajantha,
>
> Thanks for driving the release. Can we include
> https://github.com/apache/iceberg/pull/12120?
>
> On Tue, Mar 18, 2025 at 3:18 AM Steve Loughran <ste...@cloudera.com.invalid>
> wrote:
>
>>
>> Can I get this reviewed and merged; gives all hadoop filesystems with
>> bulk delete calls the ability to issue bulk deletes up to their page sizes;
>> off by default. Tested all the way through iceberg to AWS S3 london.
>>
>> https://github.com/apache/iceberg/pull/10233
>>
>>
>>
>>
>> On Mon, 17 Mar 2025 at 12:32, Yuya Ebihara <
>> yuya.ebih...@starburstdata.com> wrote:
>>
>>> Hi, can we include https://github.com/apache/iceberg/pull/12264 to fix
>>> the S3-compatible storage issue?
>>> We downgraded the problematic library in
>>> https://github.com/apache/iceberg/pull/12339, but the issue is still
>>> present in the main branch.
>>>
>>
>> I'd go with downgrading the AWS SDK to 2.29. x and then get on the
>> relevant AWS SDK discussion to express your concerns:
>> https://github.com/aws/aws-sdk-java-v2/discussions/5802
>>
>> The problem here is that there's such a broad set of implementations of
>> the S3 API that it'll take testing to see how even the suggestions from the
>> SDK team work everywhere -and we now have explicit confirmation that the
>> SDK team leave all such testing to downstream users.
>>
>>
>>
>> *The AWS SDKs and CLI are designed for usage with official AWS
>> services.We may introduce and enable new features by default, such as these
>> new default integrity protections,prior to them being supported or
>> otherwise handled by third-party service implementations.*
>>
>> I think ASF projects need to make clear how dangerous this is -that
>> projects will end up shipping releases which don't work, and the "set an
>> env var or a system property" workarounds are not enough.
>>
>>
>>
>>
>>>
>>> On Mon, Mar 17, 2025 at 8:47 PM Ajantha Bhat <ajanthab...@gmail.com>
>>> wrote:
>>>
>>>> We decided to have a fast follow up on the things that missed release
>>>> train of 1.8.0 during community sync.
>>>>
>>>> More details here:
>>>> https://lists.apache.org/thread/wvz5sd7pmh5ww1yqhsxpt1kwf993276j
>>>>
>>>> On Mon, Mar 17, 2025 at 4:53 PM Russell Spitzer <
>>>> russell.spit...@gmail.com> wrote:
>>>>
>>>>> Can you please rehash the plan? I thought we just did a release last
>>>>> month and were aiming for a three month schedule. I may have missed
>>>>> something
>>>>>
>>>>> On Mon, Mar 17, 2025 at 6:00 AM Ajantha Bhat <ajanthab...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Hey everyone,
>>>>>>
>>>>>> Following the plan from the 1.8.0 release, I'll be handling the 1.9.0
>>>>>> release. We have several major updates ready:
>>>>>>
>>>>>>    - *Partition stats APIs:* All core APIs for partition statistics
>>>>>>    have been merged, unblocking engines like Dremio, Trino, and Hive 
>>>>>> that were
>>>>>>    waiting for this feature.
>>>>>>    - *REST catalog authentication:* The refactoring PR for the REST
>>>>>>    catalog authentication manager has been merged, improving 
>>>>>> authentication
>>>>>>    support.
>>>>>>    - *Spark 3.3 support removed:* We've officially dropped support
>>>>>>    for Spark 3.3.
>>>>>>    - *InternalData support in the core module:* The core module now
>>>>>>    supports InternalData, leveraging the internal Parquet and Avro 
>>>>>> readers
>>>>>>    added in the previous release. This allows metadata to be written in
>>>>>>    Parquet.
>>>>>>    - *Bug fixes:* Many important bug fixes have been merged.
>>>>>>
>>>>>> A 1.9.0 milestone has been created with additional "good-to-have"
>>>>>> issues:
>>>>>> https://github.com/apache/iceberg/milestone/53
>>>>>>
>>>>>> If there's anything urgent that needs to be included for this
>>>>>> release, please let me know or reply to this thread.
>>>>>> I'm aiming to start the release cut by the end of this week.
>>>>>>
>>>>>>
>>>>>> - Ajantha
>>>>>>
>>>>>

Reply via email to