Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Cannot Reproduce
-
None
-
None
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?
#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; }
Command to compile this program:
g++ test.c -I/usr/local/include/arrow -I/usr/local/include/parquet --std=c++11 -lparquet -larrow -lgtest -o parquet_test
Command to run the program
./parquet_test test.parquet