-
Notifications
You must be signed in to change notification settings - Fork 110
Closed
Labels
Type: bugSomething isn't workingSomething isn't working
Milestone
Description
Describe the bug, including details regarding any error messages, version, and platform.
Very similar to #932
If a ResultSet obtained via a method from the DatabaseMetaData JDBC interface is not closed at the time of closing the connection, an exception is thrown in Connection.close() This is separate from the linked bug, because the other one only contemplated ResultSets that originate in queries made via Statements. However, the behavior is very similar.
Code to reproduce:
try {
// Establish connection
Connection connection = DriverManager.getConnection(jdbcUrl, properties);
DatabaseMetaData metaData = connection.getMetaData();
// any other method that returns a ResultSet would also repro
ResultSet rs = metaData.getTableTypes();
// this eliminates the exception
// rs.close();
connection.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
}
Resulting in the following exception (under version 18.3.0)
Jan 27, 2026 2:02:59 AM org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.memory.BaseAllocator close
SEVERE: Memory was leaked by query. Memory leaked: (64)
Allocator(VectorSchemaRootTransformer) 0/64/64/9223372036854775807 (res/actual/peak/limit)
Error: Exception while closing: Memory was leaked by query. Memory leaked: (64)
Allocator(VectorSchemaRootTransformer) 0/64/64/9223372036854775807 (res/actual/peak/limit)
java.sql.SQLException: Exception while closing: Memory was leaked by query. Memory leaked: (64)
Allocator(VectorSchemaRootTransformer) 0/64/64/9223372036854775807 (res/actual/peak/limit)
at org.apache.arrow.driver.jdbc.shaded.org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.arrow.driver.jdbc.shaded.org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at org.apache.arrow.driver.jdbc.ArrowFlightConnection.close(ArrowFlightConnection.java:190)
at MemoryLeakRepro.main(MemoryLeakRepro.java:136)
Caused by: java.lang.RuntimeException: Exception while closing: Memory was leaked by query. Memory leaked: (64)
Allocator(VectorSchemaRootTransformer) 0/64/64/9223372036854775807 (res/actual/peak/limit)
at org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.util.AutoCloseables.closeNoChecked(AutoCloseables.java:211)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.apache.arrow.driver.jdbc.ArrowFlightConnection.close(ArrowFlightConnection.java:185)
... 1 more
Caused by: java.lang.IllegalStateException: Memory was leaked by query. Memory leaked: (64)
Allocator(VectorSchemaRootTransformer) 0/64/64/9223372036854775807 (res/actual/peak/limit)
at org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.memory.BaseAllocator.close(BaseAllocator.java:504)
at org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.util.AutoCloseables.closeNoChecked(AutoCloseables.java:209)
... 3 more
Metadata
Metadata
Assignees
Labels
Type: bugSomething isn't workingSomething isn't working