fornwall opened a new pull request, #920:
URL: https://github.com/apache/arrow-go/pull/920

   **DISCLAIMERS**:
   - I'm not a user of this repository directly - the only reason this was 
encountered was due to flakyness in `arrow-adbc`, see 
https://github.com/apache/arrow-adbc/pull/4497
   - This PR was generated by AI. I have reviewed the code and is ready to make 
adjustments or to look into questions. Perhaps make comments less verbose, or 
adopt code to project conventions? Let me know!
   
   When a prepared statement's bound-parameter `DoPut` stream is torn down by 
the server before the client finishes sending (e.g. the server handler returns 
without draining the request stream), gRPC surfaces the parameter send as a 
bare `io.EOF`.
   
   Per gRPC's contract an `io.EOF` from a send only means "the stream ended -- 
receive to learn why", but `bindParameters` and `ExecuteUpdate` forwarded that 
EOF directly, so the caller saw an uninformative "EOF (Unknown)" instead of the 
server's actual status.
   
   Treat a send-side `io.EOF` as a signal to fall through to the receive, which 
recovers the real error (or the response the server produced before closing).
   
   Adds a regression test whose server returns `InvalidArgument` without 
reading the stream; a large binding forces the send to block on flow control 
and observe the teardown, so the test fails deterministically without the fix.


-- 
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