binarybrain-009 opened a new pull request, #18690: URL: https://github.com/apache/iceberg/pull/18690
`SnowflakeCatalog.newTableOps` creates a FileIO for every table load and adds each one to the catalog's `CloseableGroup`, so a long-lived catalog keeps every FileIO, and its storage clients, until `close()`. This tracks each FileIO with core's `FileIOTracker`, as `GlueCatalog` does: a FileIO is closed once its `TableOperations` is garbage collected, and the tracker, registered in the `CloseableGroup`, closes the rest with the catalog. The tracker closes FileIOs asynchronously, so `testClose` now waits for the close, and the module gains the Awaitility test dependency. This refreshes the stale #17096 by @thswlsqls. Closes #17095 Test plan: the new test drops a `TableOperations`, forces GC while loading the same table again, and asserts its FileIO is closed while the catalog is still open; it times out without the fix. `:iceberg-snowflake:test`, checkstyle and spotless pass. --- **AI Disclosure** - Model: Claude Opus 5.5 - Platform/Tool: Claude Code - Human Oversight: fully reviewed - Prompt Summary: Fix apache/iceberg#17095 (unbounded FileIO accumulation in SnowflakeCatalog); the fix and its tests are generated. -- 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]
