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]

Reply via email to