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

Reply via email to