apache / incubator-graphar

An open source, standard data file format for graph data storage and retrieval.
https://graphar.apache.org/
Apache License 2.0
192 stars 40 forks source link

Fail to build v6d #515

Open zhanglei1949 opened 3 weeks ago

zhanglei1949 commented 3 weeks ago

Describe the bug, including details regarding any error messages, version, and platform.

When I build v6d from source, I got error

/usr/include/c++/11/type_traits: In instantiation of ‘struct std::is_abstract<arrow::internal::Uri>’:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:1555:29:   required from ‘class cpp::bitwizeshift::result<arrow::internal::Uri, GraphArchive::Status>’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:79:78:   required from here
/usr/include/c++/11/type_traits:778:38: error: invalid use of incomplete type ‘class arrow::internal::Uri’
  778 |     : public integral_constant<bool, __is_abstract(_Tp)>
      |                                      ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/arrow/filesystem/api.h:30,
                 from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:21:
/usr/include/arrow/filesystem/localfs.h:29:7: note: forward declaration of ‘class arrow::internal::Uri’
   29 | class Uri;
      |       ^~~
In file included from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/fwd.h:26,
                 from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:26:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp: In instantiation of ‘class cpp::bitwizeshift::result<arrow::internal::Uri, GraphArchive::Status>’:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:79:78:   required from here
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:1555:29: error: ‘value’ is not a member of ‘std::is_abstract<arrow::internal::Uri>’
 1555 |       !std::is_abstract<T>::value,
      |                             ^~~~~
In file included from /usr/include/c++/11/bits/move.h:57,
                 from /usr/include/c++/11/bits/stl_pair.h:59,
                 from /usr/include/c++/11/bits/stl_algobase.h:64,
                 from /usr/include/c++/11/memory:63,
                 from /usr/include/arrow/adapters/orc/adapter.h:21,
                 from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:17:
/usr/include/c++/11/type_traits: In substitution of ‘template<class _Tp, class ... _Args> using __is_nothrow_constructible_impl = std::__bool_constant<__is_nothrow_constructible(_Tp)> [with _Tp = arrow::internal::Uri; _Args = {arrow::internal::Uri&&}]’:
/usr/include/c++/11/type_traits:1070:12:   required from ‘struct std::__is_nothrow_move_constructible_impl<arrow::internal::Uri, true>’
/usr/include/c++/11/type_traits:1077:12:   required from ‘struct std::is_nothrow_move_constructible<arrow::internal::Uri>’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:1286:46:   required by substitution of ‘template<class T, class E> using result_move_assign_base = cpp::bitwizeshift::detail::conditionally_nest_type<(((std::is_nothrow_move_constructible<_Tp>::value && std::is_nothrow_move_constructible<_Head>::value) && std::is_move_assignable<typename std::conditional<std::is_lvalue_reference< <template-parameter-1-1> >::value, std::reference_wrapper<typename std::remove_reference<_Tp>::type>, typename std::remove_const<_Tp>::type>::type>::value) && std::is_move_assignable<_T2>::value), cpp::bitwizeshift::detail::disable_copy_assignment<T, E> > [with T = arrow::internal::Uri; E = GraphArchive::Status]’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:1298:11:   required by substitution of ‘template<class T, class E> using result_storage = cpp::bitwizeshift::detail::result_move_assign_base<T, E> [with T = arrow::internal::Uri; E = GraphArchive::Status]’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:2681:33:   required from ‘class cpp::bitwizeshift::result<arrow::internal::Uri, GraphArchive::Status>’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:79:78:   required from here
/usr/include/c++/11/type_traits:1017:25: error: invalid use of incomplete type ‘class arrow::internal::Uri’
 1017 |       = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>;
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/arrow/filesystem/api.h:30,
                 from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:21:
/usr/include/arrow/filesystem/localfs.h:29:7: note: forward declaration of ‘class arrow::internal::Uri’
   29 | class Uri;
      |       ^~~
In file included from /usr/include/c++/11/bits/move.h:57,
                 from /usr/include/c++/11/bits/stl_pair.h:59,
                 from /usr/include/c++/11/bits/stl_algobase.h:64,
                 from /usr/include/c++/11/memory:63,
                 from /usr/include/arrow/adapters/orc/adapter.h:21,
                 from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:17:
/usr/include/c++/11/type_traits: In instantiation of ‘struct std::is_nothrow_move_constructible<arrow::internal::Uri>’:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:1286:46:   required by substitution of ‘template<class T, class E> using result_move_assign_base = cpp::bitwizeshift::detail::conditionally_nest_type<(((std::is_nothrow_move_constructible<_Tp>::value && std::is_nothrow_move_constructible<_Head>::value) && std::is_move_assignable<typename std::conditional<std::is_lvalue_reference< <template-parameter-1-1> >::value, std::reference_wrapper<typename std::remove_reference<_Tp>::type>, typename std::remove_const<_Tp>::type>::type>::value) && std::is_move_assignable<_T2>::value), cpp::bitwizeshift::detail::disable_copy_assignment<T, E> > [with T = arrow::internal::Uri; E = GraphArchive::Status]’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:1298:11:   required by substitution of ‘template<class T, class E> using result_storage = cpp::bitwizeshift::detail::result_move_assign_base<T, E> [with T = arrow::internal::Uri; E = GraphArchive::Status]’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:2681:33:   required from ‘class cpp::bitwizeshift::result<arrow::internal::Uri, GraphArchive::Status>’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:79:78:   required from here
/usr/include/c++/11/type_traits:1077:12: error: no type named ‘type’ in ‘struct std::__is_nothrow_move_constructible_impl<arrow::internal::Uri, true>’
 1077 |     struct is_nothrow_move_constructible
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/type_traits:1080:52: error: static assertion failed: template argument must be a complete class or an unbounded array
 1080 |       static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/type_traits:1080:52: note: ‘std::__is_complete_or_unbounded<std::__type_identity<arrow::internal::Uri> >((std::__type_identity<arrow::internal::Uri>{}, std::__type_identity<arrow::internal::Uri>()))’ evaluates to false
In file included from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/fwd.h:26,
                 from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:26:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp: In substitution of ‘template<class T, class E> using result_move_assign_base = cpp::bitwizeshift::detail::conditionally_nest_type<(((std::is_nothrow_move_constructible<_Tp>::value && std::is_nothrow_move_constructible<_Head>::value) && std::is_move_assignable<typename std::conditional<std::is_lvalue_reference< <template-parameter-1-1> >::value, std::reference_wrapper<typename std::remove_reference<_Tp>::type>, typename std::remove_const<_Tp>::type>::type>::value) && std::is_move_assignable<_T2>::value), cpp::bitwizeshift::detail::disable_copy_assignment<T, E> > [with T = arrow::internal::Uri; E = GraphArchive::Status]’:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:1298:11:   required by substitution of ‘template<class T, class E> using result_storage = cpp::bitwizeshift::detail::result_move_assign_base<T, E> [with T = arrow::internal::Uri; E = GraphArchive::Status]’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:2681:33:   required from ‘class cpp::bitwizeshift::result<arrow::internal::Uri, GraphArchive::Status>’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:79:78:   required from here
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:1286:46: error: ‘value’ is not a member of ‘std::is_nothrow_move_constructible<arrow::internal::Uri>’
 1286 |       std::is_nothrow_move_constructible<T>::value &&
      |                                              ^~~~~
In file included from /usr/include/c++/11/bits/move.h:57,
                 from /usr/include/c++/11/bits/stl_pair.h:59,
                 from /usr/include/c++/11/bits/stl_algobase.h:64,
                 from /usr/include/c++/11/memory:63,
                 from /usr/include/arrow/adapters/orc/adapter.h:21,
                 from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:17:
/usr/include/c++/11/type_traits: In instantiation of ‘struct std::is_move_assignable<arrow::internal::Uri>’:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:1288:56:   required by substitution of ‘template<class T, class E> using result_move_assign_base = cpp::bitwizeshift::detail::conditionally_nest_type<(((std::is_nothrow_move_constructible<_Tp>::value && std::is_nothrow_move_constructible<_Head>::value) && std::is_move_assignable<typename std::conditional<std::is_lvalue_reference< <template-parameter-1-1> >::value, std::reference_wrapper<typename std::remove_reference<_Tp>::type>, typename std::remove_const<_Tp>::type>::type>::value) && std::is_move_assignable<_T2>::value), cpp::bitwizeshift::detail::disable_copy_assignment<T, E> > [with T = arrow::internal::Uri; E = GraphArchive::Status]’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:1298:11:   required by substitution of ‘template<class T, class E> using result_storage = cpp::bitwizeshift::detail::result_move_assign_base<T, E> [with T = arrow::internal::Uri; E = GraphArchive::Status]’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:2681:33:   required from ‘class cpp::bitwizeshift::result<arrow::internal::Uri, GraphArchive::Status>’
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:79:78:   required from here
/usr/include/c++/11/type_traits:1131:52: error: static assertion failed: template argument must be a complete class or an unbounded array
 1131 |       static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/type_traits:1131:52: note: ‘std::__is_complete_or_unbounded<std::__type_identity<arrow::internal::Uri> >((std::__type_identity<arrow::internal::Uri>{}, std::__type_identity<arrow::internal::Uri>()))’ evaluates to false
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc: In function ‘GraphArchive::Result<arrow::internal::Uri> GraphArchive::detail::ParseFileSystemUri(const string&)’:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:80:24: error: aggregate ‘arrow::internal::Uri uri’ has incomplete type and cannot be defined
   80 |   arrow::internal::Uri uri;
      |                        ^~~
[ 36%] Running code generation for vineyard_graph.
[ 36%] Built target vineyard_graph_gen
In file included from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/fwd.h:26,
                 from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:26:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp: In instantiation of ‘constexpr bool cpp::bitwizeshift::result< <template-parameter-1-1>, <template-parameter-1-2> >::has_error() const [with T = arrow::internal::Uri; E = GraphArchive::Status]’:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:289:3:   required from here
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:4675:11: error: using invalid field ‘cpp::bitwizeshift::result< <template-parameter-1-1>, <template-parameter-1-2> >::m_storage’
 4675 |   return !m_storage.storage.m_has_value;
      |           ^~~~~~~~~
In file included from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/util/filesystem.h:26,
                 from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:28:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc: In function ‘GraphArchive::Result<std::shared_ptr<GraphArchive::FileSystem> > GraphArchive::FileSystemFromUriOrPath(const string&, std::string*)’:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:289:28: error: ‘arrow::internal::Uri uri’ has incomplete type
  289 |   GAR_ASSIGN_OR_RAISE(auto uri, detail::ParseFileSystemUri(uri_string));
      |                            ^~~
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/util/result.h:29:3: note: in definition of macro ‘GAR_ASSIGN_OR_RAISE_IMPL’
   29 |   lhs = std::move(result_name).value();
      |   ^~~
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:289:3: note: in expansion of macro ‘GAR_ASSIGN_OR_RAISE’
  289 |   GAR_ASSIGN_OR_RAISE(auto uri, detail::ParseFileSystemUri(uri_string));
      |   ^~~~~~~~~~~~~~~~~~~
[ 36%] Building CXX object thirdparty/cpprestsdk/Release/src/CMakeFiles/cpprest.dir/http/common/http_compression.cpp.o
In file included from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/fwd.h:26,
                 from /tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:26:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp: In instantiation of ‘constexpr E cpp::bitwizeshift::result< <template-parameter-1-1>, <template-parameter-1-2> >::error() const & [with T = arrow::internal::Uri; E = GraphArchive::Status]’:
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/src/filesystem.cc:289:3:   required from here
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:4765:10: error: using invalid field ‘cpp::bitwizeshift::result< <template-parameter-1-1>, <template-parameter-1-2> >::m_storage’
 4765 |   return m_storage.storage.m_has_value
      |          ^~~~~~~~~
/tmp/gs-local-deps/v6d-0.22.0/modules/graph/thirdparty/GraphAr/cpp/include/gar/external/result.hpp:4767:7: error: using invalid field ‘cpp::bitwizeshift::result< <template-parameter-1-1>, <template-parameter-1-2> >::m_storage’
 4767 |     : m_storage.storage.m_error;

which seems to be the problem of the submodule GraphAr. It seems to be the problem of latest arrow.

Component(s)

C++

acezen commented 3 weeks ago

The issue has been fix by #460 but not apply to vineyard yet. We plan to apply the patch to vineyard after the new release.