Trouble Building HeavyDB
I'm running into issues building heavydb from github.
More specifically, it looks like issues with my dependencies, and QueryEngine.
I resolved one redefinition error of serialization by commenting that code out, but it seems like it's hardly the actual solution since there are a number of errors downstream too.
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/utility:70,
from /usr/include/c++/11/algorithm:60,
from /home/george/Desktop/heavyai/heavydb/QueryEngine/Execute.h:20,
from /home/george/Desktop/heavyai/heavydb/build/QueryEngine/CMakeFiles/QueryEngine.dir/cmake_pch.hxx:5,
from <command-line>:
/usr/include/c++/11/type_traits: In instantiation of ‘struct std::__is_trivially_copy_constructible_impl<boost::serialization::U, true>’:
/usr/include/c++/11/type_traits:1254:12: required from ‘struct std::is_trivially_copy_constructible<boost::serialization::U>’
/usr/include/c++/11/type_traits:3200:43: required from ‘constexpr const bool std::is_trivially_copy_constructible_v<boost::serialization::U>’
/usr/include/c++/11/optional:470:12: required by substitution of ‘template<class Archive, template<class U> class SPT> void boost::serialization::load(Archive&, SPT<boost::serialization::U>&, unsigned int) [with Archive = boost::archive::text_iarchive; SPT = <missing>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:57:13: required from ‘static void boost::serialization::free_loader<Archive, T>::invoke(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:72:18: required from ‘void boost::serialization::split_free(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/optional.hpp:147:37: [ skipping 27 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/local/mapd-deps/include/boost/archive/detail/iserializer.hpp:626:18: required from ‘void boost::archive::load(Archive&, T&) [with Archive = boost::archive::text_iarchive; T = RelAlgDag]’
/usr/local/mapd-deps/include/boost/archive/detail/common_iarchive.hpp:67:22: required from ‘void boost::archive::detail::common_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/basic_text_iarchive.hpp:70:52: required from ‘void boost::archive::basic_text_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/text_iarchive.hpp:82:52: required from ‘void boost::archive::text_iarchive_impl<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/detail/interface_iarchive.hpp:68:36: required from ‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/Serializer.cpp:43:12: required from here
/usr/include/c++/11/type_traits:1249:25: error: invalid use of incomplete type ‘class boost::serialization::U’
1249 | __is_trivially_constructible(_Tp, const _Tp&)>>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/mapd-deps/include/boost/serialization/shared_ptr.hpp:29,
from /home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/serialization/RelAlgDagSerializer.h:22,
from /home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/Serializer.cpp:22:
/usr/local/mapd-deps/include/boost/serialization/shared_ptr_helper.hpp:45:16: note: forward declaration of ‘class boost::serialization::U’
45 | SPT< class U > &t,
| ^
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/utility:70,
from /usr/include/c++/11/algorithm:60,
from /home/george/Desktop/heavyai/heavydb/QueryEngine/Execute.h:20,
from /home/george/Desktop/heavyai/heavydb/build/QueryEngine/CMakeFiles/QueryEngine.dir/cmake_pch.hxx:5,
from <command-line>:
/usr/include/c++/11/type_traits: In instantiation of ‘struct std::is_trivially_copy_constructible<boost::serialization::U>’:
/usr/include/c++/11/type_traits:3200:43: required from ‘constexpr const bool std::is_trivially_copy_constructible_v<boost::serialization::U>’
/usr/include/c++/11/optional:470:12: required by substitution of ‘template<class Archive, template<class U> class SPT> void boost::serialization::load(Archive&, SPT<boost::serialization::U>&, unsigned int) [with Archive = boost::archive::text_iarchive; SPT = <missing>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:57:13: required from ‘static void boost::serialization::free_loader<Archive, T>::invoke(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:72:18: required from ‘void boost::serialization::split_free(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/optional.hpp:147:37: required from ‘void boost::serialization::serialize(Archive&, std::optional<_Up>&, unsigned int) [with Archive = boost::archive::text_iarchive; T = long unsigned int]’
/usr/local/mapd-deps/include/boost/serialization/serialization.hpp:109:14: [ skipping 26 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/local/mapd-deps/include/boost/archive/detail/iserializer.hpp:626:18: required from ‘void boost::archive::load(Archive&, T&) [with Archive = boost::archive::text_iarchive; T = RelAlgDag]’
/usr/local/mapd-deps/include/boost/archive/detail/common_iarchive.hpp:67:22: required from ‘void boost::archive::detail::common_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/basic_text_iarchive.hpp:70:52: required from ‘void boost::archive::basic_text_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/text_iarchive.hpp:82:52: required from ‘void boost::archive::text_iarchive_impl<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/detail/interface_iarchive.hpp:68:36: required from ‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/Serializer.cpp:43:12: required from here
/usr/include/c++/11/type_traits:1257:52: error: static assertion failed: template argument must be a complete class or an unbounded array
1257 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/type_traits:1257:52: note: ‘std::__is_complete_or_unbounded<std::__type_identity<boost::serialization::U> >((std::__type_identity<boost::serialization::U>{}, std::__type_identity<boost::serialization::U>()))’ evaluates to false
/usr/include/c++/11/type_traits: In instantiation of ‘constexpr const bool std::is_trivially_copy_constructible_v<boost::serialization::U>’:
/usr/include/c++/11/optional:470:12: required by substitution of ‘template<class Archive, template<class U> class SPT> void boost::serialization::load(Archive&, SPT<boost::serialization::U>&, unsigned int) [with Archive = boost::archive::text_iarchive; SPT = <missing>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:57:13: required from ‘static void boost::serialization::free_loader<Archive, T>::invoke(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:72:18: required from ‘void boost::serialization::split_free(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/optional.hpp:147:37: required from ‘void boost::serialization::serialize(Archive&, std::optional<_Up>&, unsigned int) [with Archive = boost::archive::text_iarchive; T = long unsigned int]’
/usr/local/mapd-deps/include/boost/serialization/serialization.hpp:109:14: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/archive/detail/iserializer.hpp:189:40: [ skipping 25 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/local/mapd-deps/include/boost/archive/detail/iserializer.hpp:626:18: required from ‘void boost::archive::load(Archive&, T&) [with Archive = boost::archive::text_iarchive; T = RelAlgDag]’
/usr/local/mapd-deps/include/boost/archive/detail/common_iarchive.hpp:67:22: required from ‘void boost::archive::detail::common_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/basic_text_iarchive.hpp:70:52: required from ‘void boost::archive::basic_text_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/text_iarchive.hpp:82:52: required from ‘void boost::archive::text_iarchive_impl<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/detail/interface_iarchive.hpp:68:36: required from ‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/Serializer.cpp:43:12: required from here
/usr/include/c++/11/type_traits:3200:43: error: ‘value’ is not a member of ‘std::is_trivially_copy_constructible<boost::serialization::U>’
3200 | is_trivially_copy_constructible<_Tp>::value;
| ^~~~~
/usr/include/c++/11/type_traits: In instantiation of ‘struct std::__is_trivially_move_constructible_impl<boost::serialization::U, true>’:
/usr/include/c++/11/type_traits:1277:12: required from ‘struct std::is_trivially_move_constructible<boost::serialization::U>’
/usr/include/c++/11/type_traits:3203:43: required from ‘constexpr const bool std::is_trivially_move_constructible_v<boost::serialization::U>’
/usr/include/c++/11/optional:471:12: required by substitution of ‘template<class Archive, template<class U> class SPT> void boost::serialization::load(Archive&, SPT<boost::serialization::U>&, unsigned int) [with Archive = boost::archive::text_iarchive; SPT = <missing>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:57:13: required from ‘static void boost::serialization::free_loader<Archive, T>::invoke(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:72:18: required from ‘void boost::serialization::split_free(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/optional.hpp:147:37: [ skipping 27 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/local/mapd-deps/include/boost/archive/detail/iserializer.hpp:626:18: required from ‘void boost::archive::load(Archive&, T&) [with Archive = boost::archive::text_iarchive; T = RelAlgDag]’
/usr/local/mapd-deps/include/boost/archive/detail/common_iarchive.hpp:67:22: required from ‘void boost::archive::detail::common_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/basic_text_iarchive.hpp:70:52: required from ‘void boost::archive::basic_text_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/text_iarchive.hpp:82:52: required from ‘void boost::archive::text_iarchive_impl<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/detail/interface_iarchive.hpp:68:36: required from ‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/Serializer.cpp:43:12: required from here
/usr/include/c++/11/type_traits:1272:25: error: invalid use of incomplete type ‘class boost::serialization::U’
1272 | __is_trivially_constructible(_Tp, _Tp&&)>>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/mapd-deps/include/boost/serialization/shared_ptr.hpp:29,
from /home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/serialization/RelAlgDagSerializer.h:22,
from /home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/Serializer.cpp:22:
/usr/local/mapd-deps/include/boost/serialization/shared_ptr_helper.hpp:45:16: note: forward declaration of ‘class boost::serialization::U’
45 | SPT< class U > &t,
| ^
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/utility:70,
from /usr/include/c++/11/algorithm:60,
from /home/george/Desktop/heavyai/heavydb/QueryEngine/Execute.h:20,
from /home/george/Desktop/heavyai/heavydb/build/QueryEngine/CMakeFiles/QueryEngine.dir/cmake_pch.hxx:5,
from <command-line>:
/usr/include/c++/11/type_traits: In instantiation of ‘struct std::is_trivially_move_constructible<boost::serialization::U>’:
/usr/include/c++/11/type_traits:3203:43: required from ‘constexpr const bool std::is_trivially_move_constructible_v<boost::serialization::U>’
/usr/include/c++/11/optional:471:12: required by substitution of ‘template<class Archive, template<class U> class SPT> void boost::serialization::load(Archive&, SPT<boost::serialization::U>&, unsigned int) [with Archive = boost::archive::text_iarchive; SPT = <missing>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:57:13: required from ‘static void boost::serialization::free_loader<Archive, T>::invoke(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:72:18: required from ‘void boost::serialization::split_free(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/optional.hpp:147:37: required from ‘void boost::serialization::serialize(Archive&, std::optional<_Up>&, unsigned int) [with Archive = boost::archive::text_iarchive; T = long unsigned int]’
/usr/local/mapd-deps/include/boost/serialization/serialization.hpp:109:14: [ skipping 26 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/local/mapd-deps/include/boost/archive/detail/iserializer.hpp:626:18: required from ‘void boost::archive::load(Archive&, T&) [with Archive = boost::archive::text_iarchive; T = RelAlgDag]’
/usr/local/mapd-deps/include/boost/archive/detail/common_iarchive.hpp:67:22: required from ‘void boost::archive::detail::common_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/basic_text_iarchive.hpp:70:52: required from ‘void boost::archive::basic_text_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/text_iarchive.hpp:82:52: required from ‘void boost::archive::text_iarchive_impl<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/detail/interface_iarchive.hpp:68:36: required from ‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/Serializer.cpp:43:12: required from here
/usr/include/c++/11/type_traits:1280:52: error: static assertion failed: template argument must be a complete class or an unbounded array
1280 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/type_traits:1280:52: note: ‘std::__is_complete_or_unbounded<std::__type_identity<boost::serialization::U> >((std::__type_identity<boost::serialization::U>{}, std::__type_identity<boost::serialization::U>()))’ evaluates to false
/usr/include/c++/11/type_traits: In instantiation of ‘constexpr const bool std::is_trivially_move_constructible_v<boost::serialization::U>’:
/usr/include/c++/11/optional:471:12: required by substitution of ‘template<class Archive, template<class U> class SPT> void boost::serialization::load(Archive&, SPT<boost::serialization::U>&, unsigned int) [with Archive = boost::archive::text_iarchive; SPT = <missing>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:57:13: required from ‘static void boost::serialization::free_loader<Archive, T>::invoke(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/split_free.hpp:72:18: required from ‘void boost::serialization::split_free(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/serialization/optional.hpp:147:37: required from ‘void boost::serialization::serialize(Archive&, std::optional<_Up>&, unsigned int) [with Archive = boost::archive::text_iarchive; T = long unsigned int]’
/usr/local/mapd-deps/include/boost/serialization/serialization.hpp:109:14: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::optional<long unsigned int>]’
/usr/local/mapd-deps/include/boost/archive/detail/iserializer.hpp:189:40: [ skipping 25 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/local/mapd-deps/include/boost/archive/detail/iserializer.hpp:626:18: required from ‘void boost::archive::load(Archive&, T&) [with Archive = boost::archive::text_iarchive; T = RelAlgDag]’
/usr/local/mapd-deps/include/boost/archive/detail/common_iarchive.hpp:67:22: required from ‘void boost::archive::detail::common_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/basic_text_iarchive.hpp:70:52: required from ‘void boost::archive::basic_text_iarchive<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/text_iarchive.hpp:82:52: required from ‘void boost::archive::text_iarchive_impl<Archive>::load_override(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/usr/local/mapd-deps/include/boost/archive/detail/interface_iarchive.hpp:68:36: required from ‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with T = RelAlgDag; Archive = boost::archive::text_iarchive]’
/home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/Serializer.cpp:43:12: required from here
/usr/include/c++/11/type_traits:3203:43: error: ‘value’ is not a member of ‘std::is_trivially_move_constructible<boost::serialization::U>’
3203 | is_trivially_move_constructible<_Tp>::value;
| ^~~~~
In file included from /usr/local/mapd-deps/include/boost/serialization/extended_type_info_typeid.hpp:37,
from /usr/local/mapd-deps/include/boost/archive/detail/iserializer.hpp:47,
from /usr/local/mapd-deps/include/boost/archive/detail/interface_iarchive.hpp:22,
from /usr/local/mapd-deps/include/boost/archive/detail/common_iarchive.hpp:23,
from /usr/local/mapd-deps/include/boost/archive/basic_text_iarchive.hpp:30,
from /usr/local/mapd-deps/include/boost/archive/text_iarchive.hpp:24,
from /home/george/Desktop/heavyai/heavydb/QueryEngine/RelAlgDagSerializer/Serializer.cpp:19:
/usr/local/mapd-deps/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::destroy(const T*) [with T = SortField]’:
/usr/local/mapd-deps/include/boost/serialization/extended_type_info_typeid.hpp:135:46: required from ‘void boost::serialization::extended_type_info_typeid<T>::destroy(const void*) const [with T = SortField]’
/usr/local/mapd-deps/include/boost/serialization/extended_type_info_typeid.hpp:134:10: required from here
/usr/local/mapd-deps/include/boost/serialization/access.hpp:123:9: error: deleting object of polymorphic class type ‘SortField’ which has non-virtual destructor might cause undefined behavior [-Werror=delete-non-virtual-dtor]
123 | delete const_cast<T *>(t);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [QueryEngine/CMakeFiles/QueryEngine.dir/build.make:1504: QueryEngine/CMakeFiles/QueryEngine.dir/RelAlgDagSerializer/Serializer.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:2052: QueryEngine/CMakeFiles/QueryEngine.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
-
Hi George Tang,
Apologies for the issue you encountered. We believe the root of what you are hitting is that our pre-built dependencies are currently out of date with our open source branch. We are working to update the OS branch to build with our current dependencies, which should be completed soon.
I'll update this thread after we have an update on getting the HeavyDB repo updated.
Todd
Please sign in to leave a comment.
Comments
3 comments