trino icon indicating copy to clipboard operation
trino copied to clipboard

Throw TrinoException for Glue external failures

Open pajaks opened this issue 1 year ago • 0 comments

Description

In case external Glue failure in getTable function throw TrinoException with more clear error type.

Additional context and related issues

Example stack trace:

"type": "com.amazonaws.services.glue.model.AccessDeniedException",
    "message": "User:  is not authorized to perform: glue:GetTable on resource .... (Service: AWSGlue; Status Code: 400; Error Code: AccessDeniedException; Request ID: ; Proxy: null)",
    "suppressed": [],
    "stack": [
      "com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1879)",
   "com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1418)",
      "com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1387)",
      "com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1157)",
      "com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:814)",
      "com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:781)",
      "com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:755)",
      "com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:715)",
      "com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:697)",
      "com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:561)",
      "com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:541)",
      "com.amazonaws.services.glue.AWSGlueClient.doInvoke(AWSGlueClient.java:14501)",
      "com.amazonaws.services.glue.AWSGlueClient.invoke(AWSGlueClient.java:14468)",
      "com.amazonaws.services.glue.AWSGlueClient.invoke(AWSGlueClient.java:14457)",
      "com.amazonaws.services.glue.AWSGlueClient.executeGetTable(AWSGlueClient.java:8273)",
      "com.amazonaws.services.glue.AWSGlueClient.getTable(AWSGlueClient.java:8242)",
      "io.trino.plugin.iceberg.catalog.glue.TrinoGlueCatalog.lambda$getTable$52(TrinoGlueCatalog.java:1619)",
      "io.trino.plugin.hive.metastore.glue.AwsApiCallStats.call(AwsApiCallStats.java:36)",
      "io.trino.plugin.iceberg.catalog.glue.TrinoGlueCatalog.lambda$getTable$53(TrinoGlueCatalog.java:1619)",
      "com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4938)",
      "com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3576)",
      "com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2318)",
      "com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2191)",
      "com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2081)",
      "com.google.common.cache.LocalCache.get(LocalCache.java:4019)",
      "com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4933)",
      "io.trino.cache.EvictableCache.get(EvictableCache.java:112)",
      "io.trino.cache.CacheUtils.uncheckedCacheGet(CacheUtils.java:37)",
      "io.trino.plugin.iceberg.catalog.glue.TrinoGlueCatalog.getTable(TrinoGlueCatalog.java:1614)",
      "io.trino.plugin.iceberg.catalog.glue.TrinoGlueCatalog.getTableAndCacheMetadata(TrinoGlueCatalog.java:929)",
      "io.trino.plugin.iceberg.catalog.glue.TrinoGlueCatalog.doGetMaterializedView(TrinoGlueCatalog.java:1417)",
      "io.trino.plugin.iceberg.catalog.AbstractTrinoCatalog.lambda$getMaterializedView$2(AbstractTrinoCatalog.java:207)",

Release notes

(x) This is not user-visible or is docs only, and no release notes are required. ( ) Release notes are required. Please propose a release note for me. ( ) Release notes are required, with the following suggested text:

# Section
* Fix some things. ({issue}`issuenumber`)

pajaks avatar May 22 '24 11:05 pajaks