rapidcheck icon indicating copy to clipboard operation
rapidcheck copied to clipboard

Memory access violation with rapidcheck

Open Christewart opened this issue 5 years ago • 1 comments

I think the bitcoin travis CI stuff managed to find a bug in rapid check? Here is the property that is failing. It is only happening on one environment

https://travis-ci.org/bitcoin/bitcoin/jobs/462083218

https://travis-ci.org/bitcoin/bitcoin/jobs/462083218#L7494

Thread 1 (Thread 0x7ffff7fe5780 (LWP 72946)):
#0  0x00005555561fe58f in rc::Shrinkable<rc::detail::Any>::value() const ()
#1  0x000055555623abe6 in rc::gen::detail::ExecHandler::onGenerate(rc::Gen<rc::detail::Any> const&) ()
#2  0x00005555559b418e in rc::Gen<std::tuple<CKey, CKey> >::operator*() const ()
#3  0x00005555559b45a5 in std::pair<rc::detail::FunctionTraitsImpl<std::decay<rc::detail::PropertyAdapter<void (*)(CKey const&, CKey const&), void (CKey const&, CKey const&)> >::type>::ReturnType, rc::gen::detail::Recipe> rc::gen::detail::execWithRecipe<rc::detail::PropertyAdapter<void (*)(CKey const&, CKey const&), void (CKey const&, CKey const&)> >(rc::detail::PropertyAdapter<void (*)(CKey const&, CKey const&), void (CKey const&, CKey const&)>, rc::gen::detail::Recipe) ()
#4  0x00005555559b4a03 in rc::Shrinkable<std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe> >::ShrinkableImpl<rc::shrinkable::detail::JustShrinkShrinkable<rc::Shrinkable<std::pair<rc::detail::FunctionTraitsImpl<std::decay<rc::detail::PropertyAdapter<void (*)(CKey const&, CKey const&), void (CKey const&, CKey const&)> >::type>::ReturnType, rc::gen::detail::Recipe> > rc::gen::detail::shrinkableWithRecipe<rc::detail::PropertyAdapter<void (*)(CKey const&, CKey const&), void (CKey const&, CKey const&)> >(rc::detail::PropertyAdapter<void (*)(CKey const&, CKey const&), void (CKey const&, CKey const&)>, rc::gen::detail::Recipe)::{lambda()#1}, rc::Shrinkable<std::pair<rc::detail::FunctionTraitsImpl<std::decay<rc::detail::PropertyAdapter<void (*)(CKey const&, CKey const&), void (CKey const&, CKey const&)> >::type>::ReturnType, rc::gen::detail::Recipe> > rc::gen::detail::shrinkableWithRecipe<rc::detail::PropertyAdapter<void (*)(CKey const&, CKey const&), void (CKey const&, CKey const&)> >(rc::detail::PropertyAdapter<void (*)(CKey const&, CKey const&), void (CKey const&, CKey const&)>, rc::gen::detail::Recipe)::{lambda(std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe>&&)#2}> >::value() const ()
#5  0x0000555556203b21 in rc::Shrinkable<std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe> >::value() const ()
#6  0x00005555561fdad3 in rc::shrinkable::detail::MapShrinkable<std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe>, rc::detail::mapToCaseDescription(rc::Gen<std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe> >)::{lambda(std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe>&&)#1}>::value() const ()
#7  0x00005555561fd982 in rc::Shrinkable<rc::detail::CaseDescription>::ShrinkableImpl<rc::shrinkable::detail::MapShrinkable<std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe>, rc::detail::mapToCaseDescription(rc::Gen<std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe> >)::{lambda(std::pair<rc::detail::TaggedResult, rc::gen::detail::Recipe>&&)#1}> >::value() const ()
#8  0x000055555621055b in rc::Shrinkable<rc::detail::CaseDescription>::value() const ()
#9  0x000055555620f036 in rc::detail::searchProperty(rc::Gen<rc::detail::CaseDescription> const&, rc::detail::TestParams const&, rc::detail::TestListener&) ()
#10 0x000055555620f66b in rc::detail::(anonymous namespace)::doTestProperty(rc::Gen<rc::detail::CaseDescription> const&, rc::detail::TestParams const&, rc::detail::TestListener&) ()
#11 0x000055555620fb8c in rc::detail::testProperty(rc::Gen<rc::detail::CaseDescription> const&, rc::detail::TestMetadata const&, rc::detail::TestParams const&, rc::detail::TestListener&) ()
#12 0x00005555561ec0ce in rc::detail::checkProperty(rc::Gen<rc::detail::CaseDescription> const&, rc::detail::TestMetadata const&, rc::detail::TestParams const&, rc::detail::TestListener&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, rc::detail::Reproduce, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, rc::detail::Reproduce> > > const&) ()
#13 0x00005555561ec2be in rc::detail::checkProperty(rc::Gen<rc::detail::CaseDescription> const&, rc::detail::TestMetadata const&, rc::detail::TestParams const&, rc::detail::TestListener&) ()
#14 0x00005555561ec322 in rc::detail::checkProperty(rc::Gen<rc::detail::CaseDescription> const&, rc::detail::TestMetadata const&, rc::detail::TestParams const&) ()
#15 0x00005555561ec37b in rc::detail::checkProperty(rc::Gen<rc::detail::CaseDescription> const&, rc::detail::TestMetadata const&) ()
#16 0x00005555559af306 in void rc::detail::checkBoostTest<void (*)(CKey const&, CKey const&)>(void (*&&)(CKey const&, CKey const&)) ()
#17 0x00005555559a7763 in key_properties::key_uniqueness_invoker() ()
#18 0x000055555601a5d1 in boost::function0<void>::operator() (this=0x555556a41058) at ./boost/function/function_template.hpp:759
#19 0x0000555556019cb1 in boost::detail::forward::operator() (this=0x7fffffffd1b8) at ./boost/test/impl/execution_monitor.ipp:1300
#20 0x000055555601a9dc in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke (function_obj_ptr=...)
    at ./boost/function/function_template.hpp:138
#21 0x000055555601a7b9 in boost::function0<int>::operator() (this=0x7fffffffd1b0) at ./boost/function/function_template.hpp:760
#22 0x0000555556019f61 in boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()> >(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) (tr=..., F=...) at ./boost/test/impl/execution_monitor.ipp:281
#23 0x00005555560188b2 in boost::execution_monitor::catch_signals(boost::function<int ()> const&) (
    this=0x5555569ee100 <boost::unit_test::singleton<boost::unit_test::unit_test_monitor_t>::instance()::the_inst>, F=...)
    at ./boost/test/impl/execution_monitor.ipp:864
#24 0x0000555556018a36 in boost::execution_monitor::execute(boost::function<int ()> const&) (
    this=0x5555569ee100 <boost::unit_test::singleton<boost::unit_test::unit_test_monitor_t>::instance()::the_inst>, F=...)
    at ./boost/test/impl/execution_monitor.ipp:1203
#25 0x00005555560196b0 in boost::execution_monitor::vexecute(boost::function<void ()> const&) (
    this=0x5555569ee100 <boost::unit_test::singleton<boost::unit_test::unit_test_monitor_t>::instance()::the_inst>, F=...)
    at ./boost/test/impl/execution_monitor.ipp:1309
#26 0x0000555555fb5d84 in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned int) (
    this=0x5555569ee100 <boost::unit_test::singleton<boost::unit_test::unit_test_monitor_t>::instance()::the_inst>, func=..., timeout=0)
    at ./boost/test/impl/unit_test_monitor.ipp:46
#27 0x0000555555f6c445 in boost::unit_test::framework::state::execute_test_tree (
    this=0x5555569edf20 <boost::unit_test::framework::impl::(anonymous namespace)::s_frk_state()::the_inst>, tu_id=65838, timeout=0, 
    p_random_generator=0x0) at ./boost/test/impl/framework.ipp:717
#28 0x0000555555f6bdb1 in boost::unit_test::framework::state::execute_test_tree (
    this=0x5555569edf20 <boost::unit_test::framework::impl::(anonymous namespace)::s_frk_state()::the_inst>, tu_id=68, timeout=0, 
    p_random_generator=0x0) at ./boost/test/impl/framework.ipp:666
#29 0x0000555555f6bdb1 in boost::unit_test::framework::state::execute_test_tree (
    this=0x5555569edf20 <boost::unit_test::framework::impl::(anonymous namespace)::s_frk_state()::the_inst>, tu_id=1, timeout=0, p_random_generator=0x0)
    at ./boost/test/impl/framework.ipp:666
#30 0x0000555555f650ce in boost::unit_test::framework::run (id=1, continue_test=true) at ./boost/test/impl/framework.ipp:1442
#31 0x0000555555fb2287 in boost::unit_test::unit_test_main (init_func=0x55555567bbd0 <init_unit_test_suite(int, char**)>, argc=3, argv=0x7fffffffe708)
    at ./boost/test/impl/unit_test_main.ipp:231
#32 0x0000555555fb2588 in main (argc=3, argv=0x7fffffffe708) at ./boost/test/impl/unit_test_main.ipp:286

Christewart avatar Dec 01 '18 13:12 Christewart

Related PR: https://github.com/bitcoin/bitcoin/pull/14853

Christewart avatar Dec 01 '18 13:12 Christewart