Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-7316

[C++] compile error due to incomplete type for unique_ptr

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • 0.15.1
    • None
    • C++
    • None
    • WSL, conda, arrow version 0.15

    Description

      Hi, 
      I am getting following compile error from Arrow c++

      Warning: Can't read registry to find the necessary compiler setting 
      Make sure that Python modules winreg, win32api or win32con are installed.C compiler: /home/danny/miniconda3/envs/DEV/bin/x86_64-conda_cos6-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt 
      -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -fPIC 
      compile options: '-DBUILTIN_PARQUET_READER -I. -I/home/danny/miniconda3/envs/DEV/include -I/home/danny/miniconda3/envs/DEV/include/python3.7m -c'
      extra options: '-std=c++11 -g0 -O3'
      x86_64-conda_cos6-linux-gnu-cc: bodo/io/_parquet.cpp
      x86_64-conda_cos6-linux-gnu-cc: bodo/io/_parquet_reader.cpp
      cc1plus: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++
      cc1plus: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++
      In file included from /home/danny/miniconda3/envs/DEV/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/memory:80:0,
       from /home/danny/miniconda3/envs/DEV/include/parquet/arrow/reader.h:22,
       from bodo/io/_parquet.cpp:13:/home/danny/miniconda3/envs/DEV/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/bits/unique_ptr.h: In instantiation of 'void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = arrow::RecordBatchReader]':
      /home/danny/miniconda3/envs/DEV/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/bits/unique_ptr.h:268:17: required from 'std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = arrow::RecordBatchReader; _Dp = std::default_delete<arrow::RecordBatchReader>]'/home/danny/miniconda3/envs/DEV/include/parquet/arrow/reader.h:161:49: required from here
      /home/danny/miniconda3/envs/DEV/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/bits/unique_ptr.h:76:22: error: invalid application of 'sizeof' to incomplete type 'arrow::RecordBatchReader'
       static_assert(sizeof(_Tp)>0, ^In file included from /home/danny/miniconda3/envs/DEV/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/bits/shared_ptr.h:52:0, from /home/danny/miniconda3/envs/DEV/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/memory:81, from /home/danny/miniconda3/envs/DEV/include/parquet/arrow/reader.h:22,
       from bodo/io/_parquet.cpp:13:
      /home/danny/miniconda3/envs/DEV/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/bits/shared_ptr_base.h: In instantiation of 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(_Yp*) 
      [with _Yp = arrow::RecordBatchReader; <template-parameter-2-2> = void; _Tp = arrow::RecordBatchReader; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2]':
      /home/danny/miniconda3/envs/DEV/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/bits/shared_ptr_base.h:1243:4: required from 'std::__shared_ptr<_Tp, _Lp>::_SafeConv<_Yp> std::__shared_ptr<_Tp, _Lp>::reset(_Yp*) [with _Yp = arrow::RecordBatchReader; _Tp = arrow::RecordBatchReader; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2; std::__shared_ptr<_Tp, _Lp>::_SafeConv<_Yp> = void]'
      /home/danny/miniconda3/envs/DEV/include/parquet/arrow/reader.h:164:29: required from here
      /home/danny/miniconda3/envs/DEV/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/bits/shared_ptr_base.h:1082:25: error: invalid application of 'sizeof' to incomplete type 'arrow::RecordBatchReader'
       static_assert( sizeof(_Yp) > 0, "incomplete type" );
       ^
      error: Command "/home/danny/miniconda3/envs/DEV/bin/x86_64-conda_cos6-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -fPIC -DBUILTIN_PARQUET_READER -I. -I/home/danny/miniconda3/envs/DEV/include -I/home/danny/miniconda3/envs/DEV/include/python3.7m -c bodo/io/_parquet.cpp -o build/temp.linux-x86_64-3.7/bodo/io/_parquet.o -std=c++11 -g0 -O3" failed with exit status 1

       
      The actual error in above entire error message is

      /home/danny/miniconda3/envs/DEV/include/parquet/arrow/reader.h:161:49: required from here /home/danny/miniconda3/envs/DEV/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/bits/unique_ptr.h:76:22: error: invalid application of 'sizeof' to incomplete type 'arrow::RecordBatchReader' static_assert(sizeof(_Tp)>0,
      

       
      New code(line 161 to 166 in parquet/arrow/reader.h) is introduced in version 0.15 and the new code is generating above compile errors. 
      Any remedy for this?

      Attachments

        Activity

          People

            Unassigned Unassigned
            daehee0104 Danny Kim
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: