Parmeggiani-Lab / elfin-solver

Standard Genetic Algorithm solver for elfin
MIT License
0 stars 0 forks source link

Memory bug: nmake ASAN=yes OMP=no test #16

Closed joy13975 closed 5 years ago

joy13975 commented 5 years ago
ERROR: AddressSanitizer: heap-use-after-free on address 0x606000047960 at pc 0x00000042f1ab bp 0x7ffff605e410 sp 0x7ffff605e400
READ of size 8 at 0x606000047960 thread T0
    #0 0x42f1aa in elfin::BasicNodeTeam::insert_mutate() src/basic_node_team.cc:435
    #1 0x42f9fb in elfin::BasicNodeTeam::mutate(elfin::NodeTeam const*, elfin::NodeTeam const*) src/basic_node_team.cc:761
    #2 0x4ab9f5 in elfin::Population::evolve() src/population.cc:117
    #3 0x455d55 in elfin::EvolutionSolver::run() src/evolution_solver.cc:247
    #4 0x45079f in elfin::ElfinRunner::run() src/elfin.cc:186
    #5 0x416e3d in main src/elfin.cc:196
    #6 0x7fb9073e082f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)    #7 0x417a58 in _start (/mnt/c/Users/Akaoni/Desktop/ElfinWork/elfin-solver/bin/elfin+0x417a58)
joy13975 commented 5 years ago

New error when InsertPoint bridges uses copy instead of lval:

=ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7f25f2473957 bp 0x7ffffbea8d90 sp 0x7ffffbea8500 T0)
    #0 0x7f25f2473956  (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x23956)
    #1 0x7f25f2518545 in operator delete(void*) (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc8545)
    #2 0x433eb5 in __gnu_cxx::new_allocator<elfin::ProtoModule::Bridge>::deallocate(elfin::ProtoModule::Bridge*, unsigned long) /usr/include/c++/6/ext/new_allocator.h:110
    #3 0x433eb5 in std::allocator_traits<std::allocator<elfin::ProtoModule::Bridge> >::deallocate(std::allocator<elfin::ProtoModule::Bridge>&, elfin::ProtoModule::Bridge*, unsigned long) /usr/include/c++/6/bits/alloc_traits.h:462
    #4 0x433eb5 in std::_Vector_base<elfin::ProtoModule::Bridge, std::allocator<elfin::ProtoModule::Bridge> >::_M_deallocate(elfin::ProtoModule::Bridge*, unsigned long) /usr/include/c++/6/bits/stl_vector.h:178
    #5 0x433eb5 in std::_Vector_base<elfin::ProtoModule::Bridge, std::allocator<elfin::ProtoModule::Bridge> >::~_Vector_base() /usr/include/c++/6/bits/stl_vector.h:160
    #6 0x433eb5 in std::vector<elfin::ProtoModule::Bridge, std::allocator<elfin::ProtoModule::Bridge> >::~vector() /usr/include/c++/6/bits/stl_vector.h:427
    #7 0x433eb5 in elfin::Vector<elfin::ProtoModule::Bridge>::~Vector() headers/vector_utils.h:12
    #8 0x433eb5 in elfin::InsertPoint::~InsertPoint() src/basic_node_team.cc:318
    #9 0x433eb5 in void std::_Destroy<elfin::InsertPoint>(elfin::InsertPoint*) /usr/include/c++/6/bits/stl_construct.h:93
    #10 0x433eb5 in void std::_Destroy_aux<false>::__destroy<elfin::InsertPoint*>(elfin::InsertPoint*, elfin::InsertPoint*) /usr/include/c++/6/bits/stl_construct.h:103
    #11 0x433eb5 in void std::_Destroy<elfin::InsertPoint*>(elfin::InsertPoint*, elfin::InsertPoint*) /usr/include/c++/6/bits/stl_construct.h:126
    #12 0x433eb5 in void std::_Destroy<elfin::InsertPoint*, elfin::InsertPoint>(elfin::InsertPoint*, elfin::InsertPoint*, std::allocator<elfin::InsertPoint>&) /usr/include/c++/6/bits/stl_construct.h:151
    #13 0x433eb5 in void std::vector<elfin::InsertPoint, std::allocator<elfin::InsertPoint> >::_M_emplace_back_aux<elfin::Node*&, elfin::Node*&, elfin::Link const*&, elfin::Link const*&>(elfin::Node*&, elfin::Node*&, elfin::Link const*&, elfin::Link const*&) /usr/include/c++/6/bits/vector.tcc:436
    #14 0x42e55b in void std::vector<elfin::InsertPoint, std::allocator<elfin::InsertPoint> >::emplace_back<elfin::Node*&, elfin::Node*&, elfin::Link const*&, elfin::Link const*&>(elfin::Node*&, elfin::Node*&, elfin::Link const*&, elfin::Link const*&) /usr/include/c++/6/bits/vector.tcc:101
    #15 0x42e55b in elfin::BasicNodeTeam::insert_mutate() src/basic_node_team.cc:409
    #16 0x42fc9b in elfin::BasicNodeTeam::mutate(elfin::NodeTeam const*, elfin::NodeTeam const*) src/basic_node_team.cc:774
    #17 0x4ac7f5 in elfin::Population::evolve() src/population.cc:117
    #18 0x456b55 in elfin::EvolutionSolver::run() src/evolution_solver.cc:247
    #19 0x45159f in elfin::ElfinRunner::run() src/elfin.cc:186
    #20 0x416e3d in main src/elfin.cc:196
    #21 0x7f25f17e082f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
    #22 0x417a58 in _start (/mnt/c/Users/Akaoni/Desktop/ElfinWork/elfin-solver/bin/elfin+0x417a58)
joy13975 commented 5 years ago
[ERR] Bug: No Message
[ERR] Where: ./headers/roulette.h:53
[ERR] Reason: "cpd_.empty()" evaluated to true
stack trace:
  ./bin//elfin : elfin::__debug(bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x1dd
  ./bin//elfin : elfin::ProtoTerminus::pick_random_proto_link(elfin::TerminusType) const+0xa3a
  ./bin//elfin : elfin::ProtoChain::pick_random_proto_link(elfin::TerminusType) const+0x25d
  ./bin//elfin : elfin::BasicNodeTeam::grow_tip(elfin::FreeChain)+0xd6
  ./bin//elfin : elfin::BasicNodeTeam::regenerate()+0x5ca
  ./bin//elfin : elfin::BasicNodeTeam::erode_mutate(elfin::Node*, long, bool)+0x814
  ./bin//elfin : elfin::BasicNodeTeam::mutate(elfin::NodeTeam const*, elfin::NodeTeam const*)+0x55a
  ./bin//elfin : elfin::Population::evolve()+0x2f6
  ./bin//elfin : elfin::EvolutionSolver::run()+0xfb6
  ./bin//elfin : elfin::ElfinRunner::run()+0x2a0
  ./bin//elfin : main()+0x2e
  /lib/x86_64-linux-gnu/libc.so.6 : __libc_start_main()+0xf0
  ./bin//elfin : _start()+0x29

[DIE src/debug_utils.cc:19] Exit by call to void elfin::__debug(bool, const string&, const char*, int, const string&)
joy13975 commented 5 years ago

Was closed by accident keyword in commit