924060929 commented on code in PR #69806:
URL: https://github.com/apache/doris/pull/69806#discussion_r4410164415


##########
fe/fe-core/src/main/java/org/apache/doris/datasource/plugin/PluginDrivenExternalTable.java:
##########
@@ -890,11 +958,12 @@ public Optional<String> getShowCreateTableDdl() {
         }
         ConnectorSession session = pluginCatalog.buildConnectorSession();
         ConnectorMetadata metadata = PluginDrivenMetadata.get(session, 
connector);
+        MetadataRead read = observeConnectorMetadata(session, metadata);
         Optional<ConnectorTableHandle> handleOpt = 
resolveConnectorTableHandle(session, metadata);
         if (!handleOpt.isPresent()) {
             return Optional.empty();
         }
-        return metadata.renderShowCreateTableDdl(session, handleOpt.get());
+        return read.execute(() -> metadata.renderShowCreateTableDdl(session, 
handleOpt.get()));

Review Comment:
   Fixed in b1795e4edf6a. ExternalTable now grants cleanup observations only 
while no metadata refresh is active. RefreshManager brackets the full 
invalidation interval with generation advances at both entry and exit, 
releasing the fence in an outer finally even when invalidation fails. An 
active-refresh count keeps capture disabled until all overlapping refreshes 
finish. Provider IO and invalidation remain outside the catalog monitor.
   
   The delayed SHOW CREATE regression starts during refresh, recreates the 
remote table and warms its fresh metadata on the same FE object, then delivers 
the old absence. It verifies that the numeric ID route, fresh schema and 
connector cache survive without reloading table names. A second regression 
covers overlapping real refreshes; both fail on the previous head. A third test 
verifies that failed refreshes release the fence and later confirmed absence 
can still be cleaned up.
   
   Validation: 313 focused unit cases passed across 15 classes; FE build and 
Checkstyle passed. Controlled providers, not a live external-service 
integration run.



-- 
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