paleolimbot commented on issue #323: URL: https://github.com/apache/arrow-nanoarrow/issues/323#issuecomment-1825757505
I'll investigate in more detail soon, just dumping some thoughts here that might or might not be relevant to maybe let you know about some things to look for. The fact that you can't trigger it every time AND that the stack trace you're seeing involves a finalizer suggests to me that the crash/no crash depends on when the garbage collector is run (which is unpredictable). The one time I had this issue was when I was testing some of the `with_adbc()` helpers (fixed in https://github.com/apache/arrow-adbc/commit/f44c9331eab9475bd82e1a70e41ad5d0ab292a69 ). We "enforce" that parent objects (e.g., statement) stay valid while a child is still alive (e.g., array stream) via externalptr's `tag`/`prot`. Using `with_adbc()` or `local_adbc()` or possibly a manual `adbc_xxx_release()` might disrupt that. There's an issue here https://github.com/apache/arrow-adbc/issues/1128 that might help: if we count child objects, we can do smarter things when somebody tries to move/release something that has dependent objects open. -- 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]
