moulimukherjee opened a new pull request #470: WIP: Not throw exception if 
table is not found
URL: https://github.com/apache/incubator-iceberg/pull/470
 
 
   The call stack from create table looks like the following
   
   ```at 
org.apache.iceberg.BaseMetastoreTableOperations.refresh(BaseMetastoreTableOperations.java:74)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.current(BaseMetastoreTableOperations.java:58)
        at 
org.apache.iceberg.BaseMetastoreCatalog.createTable(BaseMetastoreCatalog.java:70)
        at org.apache.iceberg.catalog.Catalog.createTable(Catalog.java:84)
   ```
   
   Now if the `doRefresh` throws a `NoSuchTableException` which it should when 
a new table does not exist yet, then the job would throw this exception and 
would crash.
   
   On the other hand say `doRefresh` swallows the exception, then the call 
stack basically becomes a loop since `shouldRefresh` is not set to `false` and 
looks something like
   
   ```at 
com.stripe.mugatu.iceberg.custom_metastore.StripeTableOperations.doRefresh(StripeIcebergSource.scala:71)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.refresh(BaseMetastoreTableOperations.java:74)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.current(BaseMetastoreTableOperations.java:58)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.refresh(BaseMetastoreTableOperations.java:83)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.current(BaseMetastoreTableOperations.java:58)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.refresh(BaseMetastoreTableOperations.java:83)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.current(BaseMetastoreTableOperations.java:58)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.refresh(BaseMetastoreTableOperations.java:83)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.current(BaseMetastoreTableOperations.java:58)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.refresh(BaseMetastoreTableOperations.java:83)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.current(BaseMetastoreTableOperations.java:58)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.refresh(BaseMetastoreTableOperations.java:83)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.current(BaseMetastoreTableOperations.java:58)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.refresh(BaseMetastoreTableOperations.java:83)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.current(BaseMetastoreTableOperations.java:58)
        at 
org.apache.iceberg.BaseMetastoreCatalog.createTable(BaseMetastoreCatalog.java:70)
   ```
   
   @rdblue @aokolnychyi thoughts?

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to