[ 
https://issues.apache.org/jira/browse/ARROW-6470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wamsi Viswanath updated ARROW-6470:
-----------------------------------
    Description: 
Below is a simple reproducible example, please let me know if the behavior is 
valid:

 ```

#include <arrow/api.h>
#include <arrow/io/memory.h>
#include <arrow/ipc/api.h>
#include <cstdio>
#include <iostream>

int main() {
 std::shared_ptr<arrow::Schema> schema =
 arrow::schema(\{arrow::field("int_", arrow::int32(), false)});
 std::vector<std::shared_ptr<arrow::Array>> arrays = {};

std::shared_ptr<arrow::RecordBatch> record_batch =
 arrow::RecordBatch::Make(schema, arrays[0]->length(), arrays);
 std::shared_ptr<arrow::Buffer> serialized_buffer;
 if (!arrow::ipc::SerializeRecordBatch(
 *record_batch, arrow::default_memory_pool(), &serialized_buffer)
 .ok()) {
 throw std::runtime_error("Error: Serializing Records.");
 }
}

```

  was:
Below is a simple reproducible example, please let me know if the behavior is 
valid:

 ```
 {color:#ffa759}int{color} {color:#ffd580}main{color}{color:#cbccc6}(){color} 
{color:#cbccc6}{{color}
 
{color:#73d0ff}std{color}{color:#cbccc6}::{color}{color:#cbccc6}shared_ptr{color}{color:#f29e74}<{color}{color:#73d0ff}arrow{color}{color:#cbccc6}::{color}{color:#cbccc6}Schema{color}{color:#f29e74}>{color}{color:#cbccc6}
 schema {color}{color:#f29e74}={color}
 
{color:#73d0ff}arrow{color}{color:#cbccc6}::{color}{color:#ffd580}schema{color}{color:#cbccc6}({{color}{color:#73d0ff}arrow{color}{color:#cbccc6}::{color}{color:#ffd580}field{color}{color:#cbccc6}({color}{color:#bae67e}"int_"{color}{color:#cbccc6},{color}
 
{color:#73d0ff}arrow{color}{color:#cbccc6}::{color}{color:#ffd580}int32{color}{color:#cbccc6}(){color}{color:#cbccc6},{color}
 {color:#ffcc66}false{color}{color:#cbccc6})}){color}{color:#cbccc6};{color}
 
{color:#73d0ff}std{color}{color:#cbccc6}::{color}{color:#cbccc6}vector{color}{color:#f29e74}<{color}{color:#73d0ff}std{color}{color:#cbccc6}::{color}{color:#cbccc6}shared_ptr{color}{color:#f29e74}<{color}{color:#73d0ff}arrow{color}{color:#cbccc6}::{color}{color:#cbccc6}Array{color}{color:#f29e74}>>{color}{color:#cbccc6}
 arrays {color}{color:#f29e74}={color} 
{color:#cbccc6}{}{color}{color:#cbccc6};{color}

{color:#73d0ff}std{color}{color:#cbccc6}::{color}{color:#cbccc6}shared_ptr{color}{color:#f29e74}<{color}{color:#73d0ff}arrow{color}{color:#cbccc6}::{color}{color:#cbccc6}RecordBatch{color}{color:#f29e74}>{color}{color:#cbccc6}
 record_batch {color}{color:#f29e74}={color}
 
{color:#73d0ff}arrow{color}{color:#cbccc6}::{color}{color:#73d0ff}RecordBatch{color}{color:#cbccc6}::{color}{color:#ffd580}Make{color}{color:#cbccc6}({color}{color:#cbccc6}schema{color}{color:#cbccc6},{color}
 
{color:#cbccc6}arrays{color}{color:#cbccc6}[{color}{color:#ffcc66}0{color}{color:#cbccc6}]{color}{color:#cbccc6}->{color}{color:#ffd580}length{color}{color:#cbccc6}(){color}{color:#cbccc6},{color}{color:#cbccc6}
 arrays{color}{color:#cbccc6}){color}{color:#cbccc6};{color}
 
{color:#73d0ff}std{color}{color:#cbccc6}::{color}{color:#cbccc6}shared_ptr{color}{color:#f29e74}<{color}{color:#73d0ff}arrow{color}{color:#cbccc6}::{color}{color:#cbccc6}Buffer{color}{color:#f29e74}>{color}{color:#cbccc6}
 serialized_buffer{color}{color:#cbccc6};{color}
 {color:#ffa759}if{color} 
{color:#cbccc6}({color}{color:#f29e74}!{color}{color:#73d0ff}arrow{color}{color:#cbccc6}::{color}{color:#73d0ff}ipc{color}{color:#cbccc6}::{color}{color:#ffd580}SerializeRecordBatch{color}{color:#cbccc6}({color}
 
{color:#f29e74}*{color}{color:#cbccc6}record_batch{color}{color:#cbccc6},{color}
 
{color:#73d0ff}arrow{color}{color:#cbccc6}::{color}{color:#ffd580}default_memory_pool{color}{color:#cbccc6}(){color}{color:#cbccc6},{color}
 
{color:#f29e74}&{color}{color:#cbccc6}serialized_buffer{color}{color:#cbccc6}){color}
 {color:#cbccc6} .{color}{color:#ffd580}ok{color}{color:#cbccc6}()){color} 
{color:#cbccc6}{{color}
 {color:#ffa759}throw{color} 
{color:#73d0ff}std{color}{color:#cbccc6}::{color}{color:#ffd580}runtime_error{color}{color:#cbccc6}({color}{color:#bae67e}"Error:
 Serializing Records."{color}{color:#cbccc6}){color}{color:#cbccc6};{color}
 }

```


> Segmentation fault when trying to serialzie empty SerializeRecordBatch 
> -----------------------------------------------------------------------
>
>                 Key: ARROW-6470
>                 URL: https://issues.apache.org/jira/browse/ARROW-6470
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>    Affects Versions: 0.13.0
>            Reporter: Wamsi Viswanath
>            Priority: Major
>
> Below is a simple reproducible example, please let me know if the behavior is 
> valid:
>  ```
> #include <arrow/api.h>
> #include <arrow/io/memory.h>
> #include <arrow/ipc/api.h>
> #include <cstdio>
> #include <iostream>
> int main() {
>  std::shared_ptr<arrow::Schema> schema =
>  arrow::schema(\{arrow::field("int_", arrow::int32(), false)});
>  std::vector<std::shared_ptr<arrow::Array>> arrays = {};
> std::shared_ptr<arrow::RecordBatch> record_batch =
>  arrow::RecordBatch::Make(schema, arrays[0]->length(), arrays);
>  std::shared_ptr<arrow::Buffer> serialized_buffer;
>  if (!arrow::ipc::SerializeRecordBatch(
>  *record_batch, arrow::default_memory_pool(), &serialized_buffer)
>  .ok()) {
>  throw std::runtime_error("Error: Serializing Records.");
>  }
> }
> ```



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to