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]

Reply via email to