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]