FlorentinD opened a new issue, #47816: URL: https://github.com/apache/arrow/issues/47816
### Describe the bug, including details regarding any error messages, version, and platform. First of all thank you for this great library! We are hitting a `Fatal Python error: Segmentation fault` if try to read a GET_STREAM with custom-metadata. ## Setup 1. Given a (Java) Arrow Server which on GET requests also sets custom metadata on the listener using `OutboundStreamListener::putMetadata(ArrowBuf metadata)`. The custom-metadata is a basic String. 2. Given an pyArrow Flight client: ``` get = client.do_get(ticket) get.read_all() # raises a Segmentation Fault ``` ## Analysis Looking at the stacktrace we could link it to the C++ method `Message::MessageImpl:Open()`. We could verify, that even with only a single empty batch the issue occured. In our Arrow Server implementation, we send a custom-metadata of type `String`. The C++ Impl reads as if the custom metadata is expected to be a Map though? ([code)](https://github.com/apache/arrow/blob/be6dddf228f73dafc34dafbe1343dc6a6680eb97/cpp/src/arrow/ipc/message.cc#L105). Omitting the String typed metadata resolves the issue. We also know, the Java Arrow client implementation can also handle arbitrary custom metadata. ## Question 1. What format is allowed for custom metadata? Can it be also a simple string or should it always be Map? 2. If it should always be a Map, could the Python/C++ impl throw a better error message? cc @DarthMax ### Component(s) C++ -- 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]
