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

Jian Fang updated PARQUET-1169:
-------------------------------
    Description: 
When I running the below code, I consistently get segment fault, not sure 
whether this is a bug or I did something wrong. Anyone here could help me take 
a look?

{code:c++}
#include <iostream>
#include <string>

#include "arrow/array.h"
#include "arrow/io/file.h"
#include "arrow/test-util.h"
#include "parquet/arrow/reader.h"

using arrow::Array;
using arrow::default_memory_pool;
using arrow::io::FileMode;
using arrow::io::MemoryMappedFile;
using parquet::arrow::ColumnReader;
using parquet::arrow::FileReader;
using parquet::arrow::OpenFile;

int main(int argc, char** argv) {
  if (argc > 1) {
    std::string file_name = argv[1];
    std::shared_ptr<MemoryMappedFile> file;
    ABORT_NOT_OK(MemoryMappedFile::Open(file_name, FileMode::READ, &file));
    std::unique_ptr<FileReader> file_reader;
    ABORT_NOT_OK(OpenFile(file, default_memory_pool(), &file_reader));
    std::unique_ptr<ColumnReader> column_reader;
    ABORT_NOT_OK(file_reader->GetColumn(0, &column_reader));

    std::shared_ptr<Array> array1;
    ABORT_NOT_OK(column_reader->NextBatch(1, &array1));
    std::cout << "length " << array1->length() << std::endl;

    std::shared_ptr<Array> array2;
    // segment fault
    ABORT_NOT_OK(column_reader->NextBatch(1, &array2));
    std::cout << "length " << array2->length() << std::endl;
  }
  return 0;
}
{code}

Command to compile this program:
{code}
g++ test.c -I/usr/local/include/arrow -I/usr/local/include/parquet --std=c++11 
-lparquet -larrow -lgtest -o parquet_test
{code}

  was:
When I running the below code, I consistently get segment fault, not sure 
whether this is a bug or I did something wrong. Anyone here could help me take 
a look?

{code:c++}
#include <iostream>
#include <string>

#include "arrow/array.h"
#include "arrow/io/file.h"
#include "arrow/test-util.h"
#include "parquet/arrow/reader.h"

using arrow::Array;
using arrow::default_memory_pool;
using arrow::io::FileMode;
using arrow::io::MemoryMappedFile;
using parquet::arrow::ColumnReader;
using parquet::arrow::FileReader;
using parquet::arrow::OpenFile;

int main(int argc, char** argv) {
  if (argc > 1) {
    std::string file_name = argv[1];
    std::shared_ptr<MemoryMappedFile> file;
    ABORT_NOT_OK(MemoryMappedFile::Open(file_name, FileMode::READ, &file));
    std::unique_ptr<FileReader> file_reader;
    ABORT_NOT_OK(OpenFile(file, default_memory_pool(), &file_reader));
    std::unique_ptr<ColumnReader> column_reader;
    ABORT_NOT_OK(file_reader->GetColumn(0, &column_reader));

    std::shared_ptr<Array> array1;
    ABORT_NOT_OK(column_reader->NextBatch(1, &array1));
    std::cout << "length " << array1->length() << std::endl;

    std::shared_ptr<Array> array2;
    // segment fault
    ABORT_NOT_OK(column_reader->NextBatch(1, &array2));
    std::cout << "length " << array2->length() << std::endl;
  }
  return 0;
}
{code}

Command to compile this program:
{code}
g++ test.c -I/usr/local/include/arrow -I/usr/local/include/parquet --std=c++11 
-lparquet -larrow -o parquet_test
{code}


> Segment fault when using NextBatch of parquet::arrow::ColumnReader in 
> parquet-cpp
> ---------------------------------------------------------------------------------
>
>                 Key: PARQUET-1169
>                 URL: https://issues.apache.org/jira/browse/PARQUET-1169
>             Project: Parquet
>          Issue Type: Bug
>          Components: parquet-cpp
>            Reporter: Jian Fang
>
> When I running the below code, I consistently get segment fault, not sure 
> whether this is a bug or I did something wrong. Anyone here could help me 
> take a look?
> {code:c++}
> #include <iostream>
> #include <string>
> #include "arrow/array.h"
> #include "arrow/io/file.h"
> #include "arrow/test-util.h"
> #include "parquet/arrow/reader.h"
> using arrow::Array;
> using arrow::default_memory_pool;
> using arrow::io::FileMode;
> using arrow::io::MemoryMappedFile;
> using parquet::arrow::ColumnReader;
> using parquet::arrow::FileReader;
> using parquet::arrow::OpenFile;
> int main(int argc, char** argv) {
>   if (argc > 1) {
>     std::string file_name = argv[1];
>     std::shared_ptr<MemoryMappedFile> file;
>     ABORT_NOT_OK(MemoryMappedFile::Open(file_name, FileMode::READ, &file));
>     std::unique_ptr<FileReader> file_reader;
>     ABORT_NOT_OK(OpenFile(file, default_memory_pool(), &file_reader));
>     std::unique_ptr<ColumnReader> column_reader;
>     ABORT_NOT_OK(file_reader->GetColumn(0, &column_reader));
>     std::shared_ptr<Array> array1;
>     ABORT_NOT_OK(column_reader->NextBatch(1, &array1));
>     std::cout << "length " << array1->length() << std::endl;
>     std::shared_ptr<Array> array2;
>     // segment fault
>     ABORT_NOT_OK(column_reader->NextBatch(1, &array2));
>     std::cout << "length " << array2->length() << std::endl;
>   }
>   return 0;
> }
> {code}
> Command to compile this program:
> {code}
> g++ test.c -I/usr/local/include/arrow -I/usr/local/include/parquet 
> --std=c++11 -lparquet -larrow -lgtest -o parquet_test
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to