Uploaded image for project: 'Parquet'
  1. Parquet
  2. PARQUET-1169

[C++] Segment fault when using NextBatch of parquet::arrow::ColumnReader in parquet-cpp

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • None
    • cpp-4.0.0
    • parquet-cpp
    • 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
      

      Attachments

        1. test.parquet
          0.8 kB
          Jian Fang

        Activity

          People

            Unassigned Unassigned
            frankfang Jian Fang
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: