ziglerari opened a new issue, #43447:
URL: https://github.com/apache/arrow/issues/43447

   ### Describe the bug, including details regarding any error messages, 
version, and platform.
   
   A [gRPC issue](https://github.com/grpc/grpc/pull/37255) has been identified 
where transmitting buffers of zero length leads to a persistent hang on 
MacOS/iOS platforms.
   
   Such zero-length buffers may arise, for example, in the context of using the 
Array structure alongside a validity bitmap, as outlined in the [Arrow 
Spec](https://arrow.apache.org/docs/format/Columnar.html#validity-bitmaps).
   
   Essentially, when every element within an Array is valid (i.e., not null), 
it's possible to represent this state with a null validity bitmap, indicating 
that all elements are valid. This scenario is realized through the use of a 
null buffer, as demonstrated here:
   
https://github.com/apache/arrow/blob/187197c369058f7d1377c1b161c469a9e4542caf/cpp/src/arrow/ipc/writer.cc#L165-L179
   
   
   The relevant sections of code from both transport mechanisms are provided 
below for reference:
   
https://github.com/apache/arrow/blob/187197c369058f7d1377c1b161c469a9e4542caf/cpp/src/arrow/flight/transport/grpc/serialization_internal.cc#L283-L287
   
   
https://github.com/apache/arrow/blob/187197c369058f7d1377c1b161c469a9e4542caf/cpp/src/arrow/flight/transport/ucx/ucx_internal.cc#L590-L591
   
   Upon examining the UCX transport's approach, it's evident that a precaution 
is taken to avoid sending zero-length buffers. This strategy appears prudent, 
as it eliminates the need to forward non-transmittable buffers to the transport 
layer, potentially offering a solution to the issue observed with gRPC.
   
   ### Component(s)
   
   C++, FlightRPC


-- 
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: issues-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to