924060929 commented on code in PR #66913: URL: https://github.com/apache/doris/pull/66913#discussion_r4056289664
########## fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalMetaCache.java: ########## @@ -37,7 +37,11 @@ import org.apache.doris.datasource.metacache.MetaCacheSizeEstimate; import org.apache.doris.datasource.metacache.MetaCacheSizeEstimator; import org.apache.doris.mtmv.MTMVRelatedTableIf; +import org.apache.doris.nereids.StatementContext; +import org.apache.doris.qe.ConnectContext; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Preconditions; import org.apache.commons.lang3.exception.ExceptionUtils; Review Comment: Fixed in 68ab4e9ec8d. `getBaseSchemaForDisplay()` now performs schema parsing and hidden-column derivation inside `IcebergUtils.withIcebergTable`, so PROC/Thrift metadata callers without a `StatementContext` own a short-lived table-generation lease. `withIcebergTable` also executes the callback with that exact generation authenticator instead of resolving the live catalog after reset. `IcebergSchemaDisplayTest` covers the no-statement describe path; the related 172 FE UTs and full `./build.sh --fe -j4` pass. ########## fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalMetaCache.java: ########## @@ -37,7 +37,11 @@ import org.apache.doris.datasource.metacache.MetaCacheSizeEstimate; import org.apache.doris.datasource.metacache.MetaCacheSizeEstimator; import org.apache.doris.mtmv.MTMVRelatedTableIf; +import org.apache.doris.nereids.StatementContext; +import org.apache.doris.qe.ConnectContext; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Preconditions; import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.iceberg.ManifestContent; Review Comment: Fixed in 68ab4e9ec8d. A manifest load now retains its physical manifest entry and, in `finally`, drops `ManifestFiles` content cache when that entry has been retired. If the read finishes before invalidation, the catalog-level drop runs afterward; if invalidation drops first, every retained reader drops again on completion, so the last old-generation reader leaves no SDK cache. The deterministic race test invalidates during iteration and verifies both drops. The related 172 FE UTs and full `./build.sh --fe -j4` pass. -- 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]
