metegenez opened a new issue, #4210: URL: https://github.com/apache/arrow-adbc/issues/4210
### What feature or improvement would you like to see? Following up on the discussion in https://github.com/apache/arrow-adbc/discussions/4206#discussioncomment-16550014 - **Go-based drivers** (Flight SQL, Snowflake): `dlclose` hangs or crashes because the Go runtime does not support clean unload (golang/go#11100). The Rust driver manager already works around this by skipping `dlclose` (#3844), but this is not documented in the C API. - **C/C++ drivers** (SQLite, PostgreSQL): presumably safe, but not documented either. - **Rust drivers**: untested per maintainer. Embedders integrating the C driver manager (e.g., StarRocks, DuckDB) currently have to discover this through the Rust manager's changelog or by debugging hangs at process shutdown. **Proposal**: add a section to the C driver manager (maybe for JNI part as well) documentation covering: 1. `dlclose` must not be called on Go-based driver handles. Driver handles should stay resident until process exit. 2. Cleanup should go through the ADBC API only: `AdbcStatementRelease` -> `AdbcConnectionRelease` -> `AdbcDatabaseRelease`. 3. Multiple Go-based drivers can be `dlopen`-ed in the same process on Linux and ARM macOS, but not on Intel macOS (due to an unresolved Go runtime bug). -- 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]
