jerryshao commented on code in PR #9282:
URL: https://github.com/apache/gravitino/pull/9282#discussion_r2591560852


##########
catalogs/catalog-fileset/src/main/java/org/apache/gravitino/catalog/fileset/FilesetCatalogOperations.java:
##########
@@ -1395,30 +1417,43 @@ FileSystem getFileSystem(Path path, Map<String, String> 
config) throws IOExcepti
                 .catalogPropertiesMetadata()
                 .getOrDefault(
                     config, 
FilesetCatalogPropertiesMetadata.FILESYSTEM_CONNECTION_TIMEOUT_SECONDS);
+
+    Future<FileSystem> fileSystemFuture =
+        fileSystemExecutor.submit(() -> provider.getFileSystem(path, config));
+
     try {
-      AtomicReference<FileSystem> fileSystem = new AtomicReference<>();
-      Awaitility.await()
-          .atMost(timeoutSeconds, TimeUnit.SECONDS)
-          .pollInterval(1, TimeUnit.MILLISECONDS)
-          .until(
-              () -> {
-                fileSystem.set(provider.getFileSystem(path, config));
-                return true;
-              });
-      return fileSystem.get();
-    } catch (ConditionTimeoutException e) {
+      return fileSystemFuture.get(timeoutSeconds, TimeUnit.SECONDS);
+    } catch (TimeoutException e) {
+      fileSystemFuture.cancel(true);
+
+      LOG.warn(
+          "Timeout when getting FileSystem for path: {}, scheme: {}, provider: 
{} within {} seconds",
+          path,
+          scheme,
+          provider,
+          timeoutSeconds,
+          e);
+
       throw new IOException(
           String.format(
-              "Failed to get FileSystem for path: %s, scheme: %s, provider: 
%s, config: %s within %s "
+              "Failed to get FileSystem for path: %s, scheme: %s, provider: %s 
within %s "
                   + "seconds, please check the configuration or increase the "
                   + "file system connection timeout time by setting catalog 
property: %s",
               path,
               scheme,
               provider,
-              config,
               timeoutSeconds,
               
FilesetCatalogPropertiesMetadata.FILESYSTEM_CONNECTION_TIMEOUT_SECONDS),
           e);
+    } catch (InterruptedException e) {
+      Thread.currentThread().interrupt();
+      throw new IOException("Interrupted while waiting for FileSystem", e);

Review Comment:
   I think you don't understand what I mean. `InterruptedException` often 
happens when closing or shutting down. This is expected and should not throw an 
`IOException` instead.



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

Reply via email to