Source: libpmemobj-cpp
Version: 1.13.0-3
Severity: normal
Tags: ftbfs

Hello,

tbb/onetbb transition (#1007222) is currently in the planning. During
test rebuild of libtbb-dev reverse dependencies with onetbb/2021.5.0-9
in experimental, current source failed to build with the following:

[ 14%] Building CXX object
tests/CMakeFiles/concurrent_hash_map_tbb_insert_lookup.dir/concurrent_hash_map/concurrent_hash_map_tbb_insert_lookup.cpp.o
cd /home/merkys/libpmemobj-cpp-1.13.0/obj-x86_64-linux-gnu/tests &&
/usr/bin/c++  -I/usr/include/valgrind
-I/home/merkys/libpmemobj-cpp-1.13.0/include
-I/home/merkys/libpmemobj-cpp-1.13.0/tests/common
-I/home/merkys/libpmemobj-cpp-1.13.0/tests/..
-I/home/merkys/libpmemobj-cpp-1.13.0/tests/. -g -O2
-ffile-prefix-map=/home/merkys/libpmemobj-cpp-1.13.0=.
-fstack-protector-strong -Wformat -Werror=format-security -Wdate-time
-D_FORTIFY_SOURCE=2 -DLIBPMEMOBJ_CPP_VG_MEMCHECK_ENABLED=1
-DLIBPMEMOBJ_CPP_VG_DRD_ENABLED=1 -DLIBPMEMOBJ_CPP_VG_HELGRIND_ENABLED=1
-Wall -Wpointer-arith -Wunused-macros -Wsign-conversion -Wsign-compare
-fno-common -Wno-maybe-uninitialized -std=gnu++14 -MD -MT
tests/CMakeFiles/concurrent_hash_map_tbb_insert_lookup.dir/concurrent_hash_map/concurrent_hash_map_tbb_insert_lookup.cpp.o
-MF
CMakeFiles/concurrent_hash_map_tbb_insert_lookup.dir/concurrent_hash_map/concurrent_hash_map_tbb_insert_lookup.cpp.o.d
-o
CMakeFiles/concurrent_hash_map_tbb_insert_lookup.dir/concurrent_hash_map/concurrent_hash_map_tbb_insert_lookup.cpp.o
-c
/home/merkys/libpmemobj-cpp-1.13.0/tests/concurrent_hash_map/concurrent_hash_map_tbb_insert_lookup.cpp
In file included from
/home/merkys/libpmemobj-cpp-1.13.0/tests/concurrent_hash_map/../concurrent_hash_map/concurrent_hash_map_test.hpp:26,
                 from
/home/merkys/libpmemobj-cpp-1.13.0/tests/concurrent_hash_map/concurrent_hash_map_insert_lookup.cpp:9,
                 from
/home/merkys/libpmemobj-cpp-1.13.0/tests/concurrent_hash_map/concurrent_hash_map_tbb_insert_lookup.cpp:11:
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:
In instantiation of 'bool pmem::obj::concurrent_hash_map<Key, T, Hash,
KeyEqual, MutexType, ScopedLockType>::bucket_accessor::is_writer() const
[with Key = pmem::obj::p<int>; T = pmem::obj::p<int>; Hash =
std::hash<pmem::obj::p<int> >; KeyEqual =
std::equal_to<pmem::obj::p<int> >; MutexType =
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>;
ScopedLockType =
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>]':
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:3235:25:
  required from 'bool pmem::obj::concurrent_hash_map<Key, T, Hash,
KeyEqual, MutexType, ScopedLockType>::internal_erase(const K&) [with K =
pmem::obj::p<int>; Key = pmem::obj::p<int>; T = pmem::obj::p<int>; Hash
= std::hash<pmem::obj::p<int> >; KeyEqual =
std::equal_to<pmem::obj::p<int> >; MutexType =
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>;
ScopedLockType =
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>]'
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:2816:24:
  required from 'bool pmem::obj::concurrent_hash_map<Key, T, Hash,
KeyEqual, MutexType, ScopedLockType>::erase(const Key&) [with Key =
pmem::obj::p<int>; T = pmem::obj::p<int>; Hash =
std::hash<pmem::obj::p<int> >; KeyEqual =
std::equal_to<pmem::obj::p<int> >; MutexType =
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>;
ScopedLockType =
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>]'
/home/merkys/libpmemobj-cpp-1.13.0/tests/concurrent_hash_map/../concurrent_hash_map/concurrent_hash_map_test.hpp:363:26:
  required from here
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:1782:50:
error: cannot convert
'tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>::is_writer'
from type 'bool
(tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>::)()
const' to type 'bool'
 1782 |                         return bucket_lock_type::is_writer;
      |                                                  ^~~~~~~~~
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:
In instantiation of 'pmem::obj::concurrent_hash_map<Key, T, Hash,
KeyEqual, MutexType,
ScopedLockType>::bucket_accessor::bucket_accessor(pmem::obj::concurrent_hash_map<Key,
T, Hash, KeyEqual, MutexType, ScopedLockType>::bucket_accessor&&) [with
Key = pmem::obj::p<int>; T = pmem::obj::p<int>; Hash =
std::hash<pmem::obj::p<int> >; KeyEqual =
std::equal_to<pmem::obj::p<int> >; MutexType =
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>;
ScopedLockType =
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>]':
/usr/include/c++/11/bits/stl_construct.h:119:7:   required from 'void
std::_Construct(_Tp*, _Args&& ...) [with _Tp =
pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor; _Args =
{pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor}]'
/usr/include/c++/11/bits/stl_uninitialized.h:92:18:   required from
'static _ForwardIterator
std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator,
_InputIterator, _ForwardIterator) [with _InputIterator =
std::move_iterator<pmem::obj::concurrent_hash_map<pmem::obj::p<int>,
pmem::obj::p<int>, std::hash<pmem::obj::p<int> >,
std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor*>; _ForwardIterator =
pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor*; bool _TrivialValueTypes = false]'
/usr/include/c++/11/bits/stl_uninitialized.h:151:15:   required from
'_ForwardIterator std::uninitialized_copy(_InputIterator,
_InputIterator, _ForwardIterator) [with _InputIterator =
std::move_iterator<pmem::obj::concurrent_hash_map<pmem::obj::p<int>,
pmem::obj::p<int>, std::hash<pmem::obj::p<int> >,
std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor*>; _ForwardIterator =
pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor*]'
/usr/include/c++/11/bits/stl_uninitialized.h:333:37:   required from
'_ForwardIterator std::__uninitialized_copy_a(_InputIterator,
_InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with
_InputIterator =
std::move_iterator<pmem::obj::concurrent_hash_map<pmem::obj::p<int>,
pmem::obj::p<int>, std::hash<pmem::obj::p<int> >,
std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor*>; _ForwardIterator =
pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor*; _Tp =
pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor]'
/usr/include/c++/11/bits/stl_uninitialized.h:355:2:   required from
'_ForwardIterator
std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator,
_ForwardIterator, _Allocator&) [with _InputIterator =
pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor*; _ForwardIterator =
pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor*; _Allocator =
std::allocator<pmem::obj::concurrent_hash_map<pmem::obj::p<int>,
pmem::obj::p<int>, std::hash<pmem::obj::p<int> >,
std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor>]'
/usr/include/c++/11/bits/vector.tcc:474:3:   required from 'void
std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp,
_Alloc>::iterator, _Args&& ...) [with _Args =
{pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex> >*&,
long unsigned int&, bool}; _Tp =
pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor; _Alloc =
std::allocator<pmem::obj::concurrent_hash_map<pmem::obj::p<int>,
pmem::obj::p<int>, std::hash<pmem::obj::p<int> >,
std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor>; std::vector<_Tp, _Alloc>::iterator =
std::vector<pmem::obj::concurrent_hash_map<pmem::obj::p<int>,
pmem::obj::p<int>, std::hash<pmem::obj::p<int> >,
std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor,
std::allocator<pmem::obj::concurrent_hash_map<pmem::obj::p<int>,
pmem::obj::p<int>, std::hash<pmem::obj::p<int> >,
std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor> >::iterator]'
/usr/include/c++/11/bits/vector.tcc:121:21:   required from 'void
std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args =
{pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex> >*&,
long unsigned int&, bool}; _Tp =
pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor; _Alloc =
std::allocator<pmem::obj::concurrent_hash_map<pmem::obj::p<int>,
pmem::obj::p<int>, std::hash<pmem::obj::p<int> >,
std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_accessor>]'
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:2935:20:
  required from 'pmem::obj::concurrent_hash_map<Key, T, Hash, KeyEqual,
MutexType, ScopedLockType>::bucket* pmem::obj::concurrent_hash_map<Key,
T, Hash, KeyEqual, MutexType,
ScopedLockType>::mutex_vector::push_and_try_lock(pmem::obj::concurrent_hash_map<Key,
T, Hash, KeyEqual, MutexType, ScopedLockType>*,
pmem::obj::concurrent_hash_map<Key, T, Hash, KeyEqual, MutexType,
ScopedLockType>::hashcode_type) [with Key = pmem::obj::p<int>; T =
pmem::obj::p<int>; Hash = std::hash<pmem::obj::p<int> >; KeyEqual =
std::equal_to<pmem::obj::p<int> >; MutexType =
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>;
ScopedLockType =
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>;
pmem::obj::concurrent_hash_map<Key, T, Hash, KeyEqual, MutexType,
ScopedLockType>::bucket =
pmem::obj::concurrent_hash_map_internal::hash_map_base<pmem::obj::p<int>, 
pmem::obj::p<int>,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket; pmem::obj::concurrent_hash_map<Key, T, Hash, KeyEqual,
MutexType, ScopedLockType>::hashcode_type = long unsigned int]'
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:2876:36:
  required from 'pobj_defrag_result pmem::obj::concurrent_hash_map<Key,
T, Hash, KeyEqual, MutexType, ScopedLockType>::defragment(double,
double) [with Key = pmem::obj::p<int>; T = pmem::obj::p<int>; Hash =
std::hash<pmem::obj::p<int> >; KeyEqual =
std::equal_to<pmem::obj::p<int> >; MutexType =
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>;
ScopedLockType =
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>]'
/home/merkys/libpmemobj-cpp-1.13.0/tests/concurrent_hash_map/../concurrent_hash_map/concurrent_hash_map_test.hpp:454:19:
  required from here
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:1730:43:
error: 'mutex' is not a member of
'pmem::obj::concurrent_hash_map<pmem::obj::p<int>, pmem::obj::p<int>,
std::hash<pmem::obj::p<int> >, std::equal_to<pmem::obj::p<int> >,
pmem::obj::experimental::v<tbb::detail::d1::spin_rw_mutex>,
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>
>::bucket_lock_type' {aka
'tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>'}
 1730 |                         bucket_lock_type::mutex =
b.bucket_lock_type::mutex;
      |                                           ^~~~~
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:1730:71:
error: 'class
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>' has no
member named 'mutex'; did you mean 'm_mutex'?
 1730 |                         bucket_lock_type::mutex =
b.bucket_lock_type::mutex;
      |
~~~~~~~~~~~~~~~~~~~~^~~~~
      |                                                   m_mutex
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:1731:43:
error: invalid use of member function 'bool
tbb::detail::d1::rw_scoped_lock<Mutex>::is_writer() const [with Mutex =
tbb::detail::d1::spin_rw_mutex]' (did you forget the '()' ?)
 1731 |                         bucket_lock_type::is_writer =
      |                                           ^~~~~~~~~
      |                                                    ()
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:1734:45:
error: 'class
tbb::detail::d1::rw_scoped_lock<tbb::detail::d1::spin_rw_mutex>' has no
member named 'mutex'; did you mean 'm_mutex'?
 1734 |                         b.bucket_lock_type::mutex = nullptr;
      |                         ~~~~~~~~~~~~~~~~~~~~^~~~~
      |                         m_mutex
/home/merkys/libpmemobj-cpp-1.13.0/include/libpmemobj++/container/concurrent_hash_map.hpp:1735:45:
error: invalid use of member function 'bool
tbb::detail::d1::rw_scoped_lock<Mutex>::is_writer() const [with Mutex =
tbb::detail::d1::spin_rw_mutex]' (did you forget the '()' ?)
 1735 |                         b.bucket_lock_type::is_writer = false;
      |                         ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
      |                                                      ()
make[3]: ***
[tests/CMakeFiles/concurrent_hash_map_tbb_insert_lookup.dir/build.make:79:
tests/CMakeFiles/concurrent_hash_map_tbb_insert_lookup.dir/concurrent_hash_map/concurrent_hash_map_tbb_insert_lookup.cpp.o]
Error 1

Andrius

Reply via email to