BronsonAVLTreeMap segfaults
bnicolae opened this issue · 2 comments
bnicolae commented
Here's a test program that reproduces this issue
#include <omp.h>
#include <vector>
#include <map>
#include <random>
#include <iostream>
#include <cds/init.h>
#include <cds/urcu/general_buffered.h>
#include <cds/container/bronson_avltree_map_rcu.h>
using namespace cds::container;
typedef cds::urcu::gc< cds::urcu::general_buffered<> > rcu_gpb;
typedef std::pair<int, int> intp_t;
static std::vector<intp_t> ref_vals;
static std::map<int, int> sorted_vals;
static const int N = 1000000;
using namespace cds::container;
typedef cds::urcu::gc< cds::urcu::general_buffered<> > rcu_gpb;
void create_reference(int n) {
std::mt19937 rng(112233L);
ref_vals.resize(n);
sorted_vals.clear();
int i = 0;
while (i < n) {
int val = rng();
auto it = sorted_vals.find(val);
if (it != sorted_vals.end())
continue;
auto p = std::make_pair(val, val + 1);
sorted_vals.insert(it, p);
ref_vals[i] = p;
i++;
}
std::cout << "Init complete, max element: " << sorted_vals.rbegin()->first + 1 << std::endl;
}
int main() {
cds::Initialize();
rcu_gpb rcuGPB;
BronsonAVLTreeMap<rcu_gpb, int, int> map;
create_reference(N);
int t = std::thread::hardware_concurrency();
#pragma omp parallel num_threads(t)
{
cds::threading::Manager::attachThread();
#pragma omp for
for (int i = 0; i < N; i++)
map.insert(ref_vals[i].first, ref_vals[i].second);
cds::threading::Manager::detachThread();
}
cds::Terminate();
return 0;
}
khizmax commented
Please, try the following:
int main() {
cds::Initialize();
{ // ***** Added
rcu_gpb rcuGPB;
BronsonAVLTreeMap<rcu_gpb, int, int> map;
create_reference(N);
int t = std::thread::hardware_concurrency();
#pragma omp parallel num_threads(t)
{
cds::threading::Manager::attachThread();
#pragma omp for
for (int i = 0; i < N; i++)
map.insert(ref_vals[i].first, ref_vals[i].second);
cds::threading::Manager::detachThread();
}
} // ****** Added
cds::Terminate();
return 0;
}
bnicolae commented
@khizmax this is not working for me, same issue. My compiler: g++ (GCC) 10.2.0 (on a Linux box). Here's a run with Valgrind:
==31840== Memcheck, a memory error detector
==31840== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==31840== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==31840== Command: ./basic_test
==31840==
Init complete, max element: 2147482248
==31840== Invalid read of size 8
==31840== at 0x10D7BA: cds::urcu::details::thread_data<cds::urcu::general_buffered_tag>* cds::threading::getRCU<cds::urcu::general_buffered_tag>() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x111F68: cds::urcu::details::gp_thread_gc<cds::urcu::general_buffered_tag>::get_thread_record() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x111EBD: cds::urcu::details::gp_thread_gc<cds::urcu::general_buffered_tag>::is_locked() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x110D8A: cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >::is_locked() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x10FEF3: cds::urcu::details::check_deadlock_policy<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, cds::opt::v::rcu_throw_deadlock>::check() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x113E05: void cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::do_extract_minmax<int* cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::do_extract_min<cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min()::{lambda(int const&)#1}>(cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min()::{lambda(int const&)#1})::{lambda(int const&, int*, cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::rcu_disposer&)#1}>(int, cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min()::{lambda(int const&)#1}) (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x11300E: int* cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::do_extract_min<cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min()::{lambda(int const&)#1}>(cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min()::{lambda(int const&)#1}) (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x111E5F: cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x110D32: cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::clear() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x10FDE9: cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::unsafe_clear() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x10EEA5: cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::~BronsonAVLTreeMap() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x10E1C3: cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::~BronsonAVLTreeMap() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== Address 0x8 is not stack'd, malloc'd or (recently) free'd
==31840==
==31840==
==31840== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==31840== Access not within mapped region at address 0x8
==31840== at 0x10D7BA: cds::urcu::details::thread_data<cds::urcu::general_buffered_tag>* cds::threading::getRCU<cds::urcu::general_buffered_tag>() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x111F68: cds::urcu::details::gp_thread_gc<cds::urcu::general_buffered_tag>::get_thread_record() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x111EBD: cds::urcu::details::gp_thread_gc<cds::urcu::general_buffered_tag>::is_locked() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x110D8A: cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >::is_locked() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x10FEF3: cds::urcu::details::check_deadlock_policy<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, cds::opt::v::rcu_throw_deadlock>::check() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x113E05: void cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::do_extract_minmax<int* cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::do_extract_min<cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min()::{lambda(int const&)#1}>(cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min()::{lambda(int const&)#1})::{lambda(int const&, int*, cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::rcu_disposer&)#1}>(int, cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min()::{lambda(int const&)#1}) (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x11300E: int* cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::do_extract_min<cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min()::{lambda(int const&)#1}>(cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min()::{lambda(int const&)#1}) (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x111E5F: cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::extract_min() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x110D32: cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::clear() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x10FDE9: cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::unsafe_clear() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x10EEA5: cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int*, cds::container::bronson_avltree::details::make_map<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::traits>::~BronsonAVLTreeMap() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== by 0x10E1C3: cds::container::BronsonAVLTreeMap<cds::urcu::gc<cds::urcu::general_buffered<cds::container::VyukovMPMCCycleQueue<cds::urcu::epoch_retired_ptr, cds::container::vyukov_queue::traits>, std::mutex, cds::backoff::exponential<cds::backoff::exponential_const_traits> > >, int, int, cds::container::bronson_avltree::traits>::~BronsonAVLTreeMap() (in /home/masteroo/work/datastates/vskip/vskip-theta/basic_test)
==31840== If you believe this happened as a result of a stack
==31840== overflow in your program's main thread (unlikely but
==31840== possible), you can try to increase the size of the
==31840== main thread stack using the --main-stacksize= flag.
==31840== The main thread stack size used in this run was 8388608.
==31840==
==31840== HEAP SUMMARY:
==31840== in use at exit: 124,014,776 bytes in 3,000,022 blocks
==31840== total heap usage: 3,000,033 allocs, 11 frees, 124,121,768 bytes allocated
==31840==
==31840== LEAK SUMMARY:
==31840== definitely lost: 0 bytes in 0 blocks
==31840== indirectly lost: 0 bytes in 0 blocks
==31840== possibly lost: 2,240 bytes in 7 blocks
==31840== still reachable: 124,012,536 bytes in 3,000,015 blocks
==31840== suppressed: 0 bytes in 0 blocks
==31840== Rerun with --leak-check=full to see details of leaked memory
==31840==
==31840== For lists of detected and suppressed errors, rerun with: -s
==31840== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Segmentation fault (core dumped)