Skip to content

Conversation

@losipiuk
Copy link
Member

Use ICEBERG_CATALOG_ERROR instead GENERIC_INTERNAL_ERROR when iceberg metadata cannot be created due to external reasons.

Example stack:

Caused by: org.apache.iceberg.exceptions.NotAuthorizedException: Not authorized: invalid_client: Credentials are deactivated: t-E_VPCmbvgJY
		code: 65536, name: GENERIC_INTERNAL_ERROR
	at org.apache.iceberg.rest.ErrorHandlers$OAuthErrorHandler.accept(ErrorHandlers.java:271)
	at org.apache.iceberg.rest.ErrorHandlers$OAuthErrorHandler.accept(ErrorHandlers.java:252)
	at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:215)
	at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:299)
	at org.apache.iceberg.rest.BaseHTTPClient.postForm(BaseHTTPClient.java:111)
	at org.apache.iceberg.rest.auth.OAuth2Util.fetchToken(OAuth2Util.java:267)
	at org.apache.iceberg.rest.auth.OAuth2Manager.initSession(OAuth2Manager.java:87)
	at org.apache.iceberg.rest.auth.OAuth2Manager.initSession(OAuth2Manager.java:40)
	at org.apache.iceberg.rest.RESTSessionCatalog.initialize(RESTSessionCatalog.java:201)
	at io.trino.plugin.iceberg.catalog.rest.TrinoIcebergRestCatalogFactory.create(TrinoIcebergRestCatalogFactory.java:150)
	at io.trino.plugin.iceberg.IcebergMetadataFactory.create(IcebergMetadataFactory.java:108)
	at io.trino.plugin.iceberg.IcebergTransactionManager$MemoizedMetadata.get(IcebergTransactionManager.java:90)
	at io.trino.plugin.iceberg.IcebergTransactionManager.get(IcebergTransactionManager.java:56)
	at io.trino.plugin.iceberg.IcebergConnector.getMetadata(IcebergConnector.java:135)
	at io.trino.metadata.CatalogTransaction.getConnectorMetadata(CatalogTransaction.java:71)
	at io.trino.metadata.CatalogMetadata.getMetadataFor(CatalogMetadata.java:93)
	at io.trino.metadata.MetadataManager.getRelationTypes(MetadataManager.java:614)
	at io.trino.tracing.TracingMetadata.getRelationTypes(TracingMetadata.java:331)
	at io.trino.metadata.MetadataListing.doGetRelationTypes(MetadataListing.java:150)
	at io.trino.metadata.MetadataListing.getRelationTypes(MetadataListing.java:141)

Use ICEBERG_CATALOG_ERROR instead GENERIC_INTERNAL_ERROR when iceberg
metadata cannot be created due to external reasons.

Example stack:
Caused by: org.apache.iceberg.exceptions.NotAuthorizedException: Not authorized: invalid_client: Credentials are deactivated: t-E_VPCmbvgJY
		code: 65536, name: GENERIC_INTERNAL_ERROR
	at org.apache.iceberg.rest.ErrorHandlers$OAuthErrorHandler.accept(ErrorHandlers.java:271)
	at org.apache.iceberg.rest.ErrorHandlers$OAuthErrorHandler.accept(ErrorHandlers.java:252)
	at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:215)
	at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:299)
	at org.apache.iceberg.rest.BaseHTTPClient.postForm(BaseHTTPClient.java:111)
	at org.apache.iceberg.rest.auth.OAuth2Util.fetchToken(OAuth2Util.java:267)
	at org.apache.iceberg.rest.auth.OAuth2Manager.initSession(OAuth2Manager.java:87)
	at org.apache.iceberg.rest.auth.OAuth2Manager.initSession(OAuth2Manager.java:40)
	at org.apache.iceberg.rest.RESTSessionCatalog.initialize(RESTSessionCatalog.java:201)
	at io.trino.plugin.iceberg.catalog.rest.TrinoIcebergRestCatalogFactory.create(TrinoIcebergRestCatalogFactory.java:150)
	at io.trino.plugin.iceberg.IcebergMetadataFactory.create(IcebergMetadataFactory.java:108)
	at io.trino.plugin.iceberg.IcebergTransactionManager$MemoizedMetadata.get(IcebergTransactionManager.java:90)
	at io.trino.plugin.iceberg.IcebergTransactionManager.get(IcebergTransactionManager.java:56)
	at io.trino.plugin.iceberg.IcebergConnector.getMetadata(IcebergConnector.java:135)
	at io.trino.metadata.CatalogTransaction.getConnectorMetadata(CatalogTransaction.java:71)
	at io.trino.metadata.CatalogMetadata.getMetadataFor(CatalogMetadata.java:93)
	at io.trino.metadata.MetadataManager.getRelationTypes(MetadataManager.java:614)
	at io.trino.tracing.TracingMetadata.getRelationTypes(TracingMetadata.java:331)
	at io.trino.metadata.MetadataListing.doGetRelationTypes(MetadataListing.java:150)
	at io.trino.metadata.MetadataListing.getRelationTypes(MetadataListing.java:141)
@losipiuk losipiuk added the no-release-notes This pull request does not require release notes entry label Jun 11, 2025
@cla-bot cla-bot bot added the cla-signed label Jun 11, 2025
@losipiuk losipiuk requested a review from ebyhr June 11, 2025 09:38
@github-actions github-actions bot added the iceberg Iceberg connector label Jun 11, 2025
@losipiuk losipiuk requested a review from wendigo June 11, 2025 09:58
@losipiuk losipiuk merged commit a8ae176 into trinodb:master Jun 18, 2025
42 checks passed
@github-actions github-actions bot added this to the 477 milestone Jun 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed iceberg Iceberg connector no-release-notes This pull request does not require release notes entry

Development

Successfully merging this pull request may close these issues.

2 participants