scovich commented on PR #7843: URL: https://github.com/apache/arrow-rs/pull/7843#issuecomment-3026265182
This change makes me nervous, after having been bitten in the past -- multiple times in multiple projects and multiple languages -- by unconditional finalizations like this that don't consider whether the the finalization is actually desirable. The most recent was a bad interaction between spark and hadoop, where the upload stream's unconditional auto-close behavior meant that early return due to an exception uploaded a partial object to cloud storage (= a torn write that caused havoc to readers who don't expect torn writes in cloud storage to be possible). The offending code was buried many levels deep, which made it a real treat to root-cause, and even more "fun" to workaround. Having any object attempt to "finish" in spite of a panic=unwind, or even a `?` return would be unexpected and unwelcome behavior IMO. And changing a `Result` into a panic inside drop glue is even worse (double fault risk). If the worry is that somebody might forget to invoke the `finish` method... can we try to figure out other ways to address it, which don't resort to implicit/spooky behavior? -- 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: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org