You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Antoine Pitrou (Jira)" <ji...@apache.org> on 2020/09/08 14:55:00 UTC

[jira] [Resolved] (ARROW-9588) [C++] clang/win: Copy constructor of ParquetInvalidOrCorruptedFileException not correctly triggered

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

Antoine Pitrou resolved ARROW-9588.
-----------------------------------
    Fix Version/s: 2.0.0
       Resolution: Fixed

Issue resolved by pull request 8114
[https://github.com/apache/arrow/pull/8114]

> [C++] clang/win: Copy constructor of ParquetInvalidOrCorruptedFileException not correctly triggered
> ---------------------------------------------------------------------------------------------------
>
>                 Key: ARROW-9588
>                 URL: https://issues.apache.org/jira/browse/ARROW-9588
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>    Affects Versions: 1.0.0
>            Reporter: Uwe Korn
>            Assignee: Uwe Korn
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.0.0
>
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> The copy constructor of ParquetInvalidOrCorruptedFileException doesn't seem to be taken correctly when building with clang 9.0.1 on Windows in a MSVC toolchain.
> Adding {{ParquetInvalidOrCorruptedFileException(const ParquetInvalidOrCorruptedFileException&) = default;}} as an explicit copy constructor didn't help.
> Happy to any ideas here, probably a long shot as there are other clang-msvc problems.
> {code}
> [49/62] Building CXX object src/parquet/CMakeFiles/parquet_shared.dir/Unity/unity_1_cxx.cxx.obj
> FAILED: src/parquet/CMakeFiles/parquet_shared.dir/Unity/unity_1_cxx.cxx.obj
> C:\Users\Administrator\miniconda3\conda-bld\arrow-cpp-ext_1595962790058\_build_env\Library\bin\clang++.exe  -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_HAVE_S
> SE4_2 -DARROW_WITH_BROTLI -DARROW_WITH_BZ2 -DARROW_WITH_LZ4 -DARROW_WITH_SNAPPY -DARROW_WITH_TIMING_TESTS -DARROW_WITH_UTF8PROC -DARROW_WITH_ZLIB -DARROW_WITH_ZSTD -DAWS_COMMON_USE_IMPORT_EXPORT -DAWS_EVE
> NT_STREAM_USE_IMPORT_EXPORT -DAWS_SDK_VERSION_MAJOR=1 -DAWS_SDK_VERSION_MINOR=7 -DAWS_SDK_VERSION_PATCH=164 -DHAVE_INTTYPES_H -DHAVE_NETDB_H -DNOMINMAX -DPARQUET_EXPORTING -DUSE_IMPORT_EXPORT -DUSE_IMPORT
> _EXPORT=1 -DUSE_WINDOWS_DLL_SEMANTICS -D_CRT_SECURE_NO_WARNINGS -Dparquet_shared_EXPORTS -Isrc -I../src -I../src/generated -isystem ../thirdparty/flatbuffers/include -isystem C:/Users/Administrator/minico
> nda3/conda-bld/arrow-cpp-ext_1595962790058/_h_env/Library/include -isystem ../thirdparty/hadoop/include -fvisibility-inlines-hidden -std=c++14 -fmessage-length=0 -march=k8 -mtune=haswell -ftree-vectorize
> -fstack-protector-strong -O2 -ffunction-sections -pipe -D_CRT_SECURE_NO_WARNINGS -D_MT -D_DLL -nostdlib -Xclang --dependent-lib=msvcrt -fuse-ld=lld -fno-aligned-allocation -Qunused-arguments -fcolor-diagn
> ostics -O3 -DNDEBUG  -Wa,-mbig-obj -Wall -Wno-unknown-warning-option -Wno-pass-failed -msse4.2  -O3 -DNDEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrt   -std=c++14 -MD -MT src/parquet/CMakeFiles/parquet
> _shared.dir/Unity/unity_1_cxx.cxx.obj -MF src\parquet\CMakeFiles\parquet_shared.dir\Unity\unity_1_cxx.cxx.obj.d -o src/parquet/CMakeFiles/parquet_shared.dir/Unity/unity_1_cxx.cxx.obj -c src/parquet/CMakeF
> iles/parquet_shared.dir/Unity/unity_1_cxx.cxx
> In file included from src/parquet/CMakeFiles/parquet_shared.dir/Unity/unity_1_cxx.cxx:3:
> In file included from C:/Users/Administrator/miniconda3/conda-bld/arrow-cpp-ext_1595962790058/work/cpp/src/parquet/column_scanner.cc:18:
> In file included from ../src\parquet/column_scanner.h:29:
> In file included from ../src\parquet/column_reader.h:25:
> In file included from ../src\parquet/exception.h:26:
> In file included from ../src\parquet/platform.h:23:
> In file included from ../src\arrow/buffer.h:28:
> In file included from ../src\arrow/status.h:25:
> ../src\arrow/util/string_builder.h:49:10: error: invalid operands to binary expression ('std::ostream' (aka 'basic_ostream<char, char_traits<char> >') and 'parquet::ParquetInvalidOrCorruptedFileException'
> )
>   stream << head;
>   ~~~~~~ ^  ~~~~
> ../src\arrow/util/string_builder.h:61:3: note: in instantiation of function template specialization 'arrow::util::StringBuilderRecursive<parquet::ParquetInvalidOrCorruptedFileException &>' requested here
>   StringBuilderRecursive(ss.stream(), std::forward<Args>(args)...);
>   ^
> ../src\arrow/status.h:160:31: note: in instantiation of function template specialization 'arrow::util::StringBuilder<parquet::ParquetInvalidOrCorruptedFileException &>' requested here
>     return Status(code, util::StringBuilder(std::forward<Args>(args)...));
>                               ^
> ../src\arrow/status.h:204:20: note: in instantiation of function template specialization 'arrow::Status::FromArgs<parquet::ParquetInvalidOrCorruptedFileException &>' requested here
>     return Status::FromArgs(StatusCode::Invalid, std::forward<Args>(args)...);
>                    ^
> ../src\parquet/exception.h:129:49: note: in instantiation of function template specialization 'arrow::Status::Invalid<parquet::ParquetInvalidOrCorruptedFileException &>' requested here
>       : ParquetStatusException(::arrow::Status::Invalid(std::forward<Args>(args)...)) {}
>                                                 ^
> C:/Users/Administrator/miniconda3/conda-bld/arrow-cpp-ext_1595962790058/work/cpp/src/parquet/file_reader.cc:270:13: note: in instantiation of function template specialization 'parquet::ParquetInvalidOrCor
> ruptedFileException::ParquetInvalidOrCorruptedFileException<parquet::ParquetInvalidOrCorruptedFileException &>' requested here
>       throw ParquetInvalidOrCorruptedFileException("Parquet file size is 0 bytes");
>             ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:480:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'const void *' for 1st ar
> gument; take the address of the argument with &
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(const void *_Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:204:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'std::basic_ostream<char,
>  char_traits<char> > &(*)(std::basic_ostream<char, char_traits<char> > &) __attribute__((cdecl))' for 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(basic_ostream& (__cdecl *_Pfn)(basic_ostream&))
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:209:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'std::basic_ostream<char,
>  std::char_traits<char> >::_Myios &(*)(std::basic_ostream<char, std::char_traits<char> >::_Myios &) __attribute__((cdecl))' (aka 'basic_ios<char, std::char_traits<char> > &(*)(basic_ios<char, std::char_tr
> aits<char> > &)') for 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(_Myios& (__cdecl *_Pfn)(_Myios&))
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:215:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'std::ios_base &(*)(std::
> ios_base &) __attribute__((cdecl))' for 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(ios_base& (__cdecl *_Pfn)(ios_base&))
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:221:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'bool' for 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(bool _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:241:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'short' for 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(short _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:275:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'unsigned short' for 1st
> argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(unsigned short _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:295:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'int' for 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(int _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:320:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'unsigned int' for 1st ar
> gument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(unsigned int _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:340:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'long' for 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(long _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:360:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'unsigned long' for 1st a
> rgument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(unsigned long _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:380:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'long long' for 1st argum
> ent
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(long long _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:400:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'unsigned long long' for
> 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(unsigned long long _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:420:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'float' for 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(float _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:440:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'double' for 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(double _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:460:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'long double' for 1st arg
> ument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(long double _Val)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:508:36: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'std::basic_ostream<char,
>  std::char_traits<char> >::_Mysb *' (aka 'basic_streambuf<char, std::char_traits<char> > *') for 1st argument
>         basic_ostream& __CLR_OR_THIS_CALL operator<<(_Mysb *_Strbuf)
>                                           ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:702:33: note: candidate function template not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'const char *' f
> or 2nd argument
>         basic_ostream<_Elem, _Traits>& operator<<(
>                                        ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:749:33: note: candidate function template not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'char' for 2nd a
> rgument
>         basic_ostream<_Elem, _Traits>& operator<<(
>                                        ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:787:32: note: candidate function template not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'const char *' f
> or 2nd argument
>         basic_ostream<char, _Traits>& operator<<(
>                                       ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:834:32: note: candidate function template not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'char' for 2nd a
> rgument
>         basic_ostream<char, _Traits>& operator<<(
>                                       ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:960:32: note: candidate function template not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'const signed ch
> ar *' for 2nd argument
>         basic_ostream<char, _Traits>& operator<<(
>                                       ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:967:32: note: candidate function template not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'signed char' fo
> r 2nd argument
>         basic_ostream<char, _Traits>& operator<<(
>                                       ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:974:32: note: candidate function template not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'const unsigned
> char *' for 2nd argument
>         basic_ostream<char, _Traits>& operator<<(
>                                       ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:981:32: note: candidate function template not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'unsigned char'
> for 2nd argument
>         basic_ostream<char, _Traits>& operator<<(
>                                       ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:1047:3: note: candidate function template not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'const std::erro
> r_code' for 2nd argument
>                 operator<<(basic_ostream<_Elem, _Traits>& _Ostr,
>                 ^
> ../src\arrow/type.h:182:15: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'const arrow::DataType' for 2nd argument
> std::ostream& operator<<(std::ostream& os, const DataType& type);
>               ^
> ../src\arrow/type.h:1046:15: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'TimeUnit::type' for 2nd argument
> std::ostream& operator<<(std::ostream& os, TimeUnit::type unit);
>               ^
> ../src\arrow/array/array_base.h:203:29: note: candidate function not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'const arrow::Array' for 2nd argument
> static inline std::ostream& operator<<(std::ostream& os, const Array& x) {
>                             ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\thread:240:27: note: candidate function template not viable: no known conversion from 'parquet::ParquetInvalidOrCorruptedFileException' to 'thread::id' for
> 2nd argument
>         basic_ostream<_Ch, _Tr>& operator<<(
>                                  ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:921:33: note: candidate template ignored: deduced conflicting types for parameter '_Elem' ('char' vs. 'parquet::ParquetInvalidOrCorruptedFileExcepti
> on')
>         basic_ostream<_Elem, _Traits>& operator<<(
>                                        ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\memory:1718:33: note: candidate template ignored: could not match 'shared_ptr<type-parameter-0-2>' against 'parquet::ParquetInvalidOrCorruptedFileException'
>         basic_ostream<_Elem, _Traits>& operator<<(basic_ostream<_Elem, _Traits>& _Out, const shared_ptr<_Ty>& _Px)
>                                        ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\memory:2757:33: note: candidate template ignored: could not match 'unique_ptr<type-parameter-0-2, type-parameter-0-3>' against 'parquet::ParquetInvalidOrCor
> ruptedFileException'
>         basic_ostream<_Elem, _Traits>& operator<<(basic_ostream<_Elem, _Traits>& _Out, const unique_ptr<_Yty, _Dx>& _Px)
>                                        ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:874:33: note: candidate template ignored: could not match 'const _Elem *' against 'parquet::ParquetInvalidOrCorruptedFileException'
>         basic_ostream<_Elem, _Traits>& operator<<(
>                                        ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\ostream:1008:10: note: candidate template ignored: requirement 'conjunction_v<std::negation<std::is_lvalue_reference<std::basic_ostream<char, std::char_trai
> ts<char> > &> >, std::is_base_of<std::ios_base, std::basic_ostream<char, std::char_traits<char> > &>, std::_Can_stream_out<std::basic_ostream<char, std::char_traits<char> > &, parquet::ParquetInvalidOrCor
> ruptedFileException, void> >' was not satisfied [with _Ostr = std::basic_ostream<char, char_traits<char> > &, _Ty = parquet::ParquetInvalidOrCorruptedFileException]
>         _Ostr&& operator<<(_Ostr&& _Os, const _Ty& _Val)
>                 ^
> C:\BuildTools\VC\Tools\MSVC\14.16.27023\include\string:170:33: note: candidate template ignored: could not match 'basic_string<type-parameter-0-0, type-parameter-0-1, type-parameter-0-2>' against 'parquet
> ::ParquetInvalidOrCorruptedFileException'
>         basic_ostream<_Elem, _Traits>& operator<<(
>                                        ^
> 1 error generated.
> [54/62] Building CXX object src/parquet/CMakeFiles/parquet_shared.dir/Unity/unity_0_cxx.cxx.obj
> ninja: build stopped: subcommand failed.
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)