Github user StefanRRichter commented on a diff in the pull request:
https://github.com/apache/flink/pull/4639#discussion_r136877616
--- Diff:
flink-core/src/main/java/org/apache/flink/util/AbstractCloseableRegistry.java
---
@@ -61,13 +75,14 @@ public final void registerClosable(C closeable) throws
IOException {
}
synchronized (getSynchronizationLock()) {
- if (closed) {
- IOUtils.closeQuietly(closeable);
- throw new IOException("Cannot register
Closeable, registry is already closed. Closing argument.");
+ if (!closed) {
+ doRegister(closeable, closeableToRef);
+ return;
}
-
- doRegister(closeable, closeableToRef);
}
+
+ IOUtils.closeQuietly(closeable);
--- End diff --
I think it should not. For some distributed filesystems a call to `close()`
could block and would keep the registry blocked. We only need to synchronize
the access to the internal map and the closed flag.
---