{"action":"opened","issue":{"url":"https://api.github.com/repos/dyninst/dyninst/issues/359","repository_url":"https://api.github.com/repos/dyninst/dyninst","labels_url":"https://api.github.com/repos/dyninst/dyninst/issues/359/labels{/name}","comments_url":"https://api.github.com/repos/dyninst/dyninst/issues/359/comments","events_url":"https://api.github.com/repos/dyninst/dyninst/issues/359/events","html_url":"https://github.com/dyninst/dyninst/issues/359","id":219312924,"number":359,"title":"Segfault when singleton_object_pool reallocs","user":{"login":"wrwilliams","id":1699385,"avatar_url":"https://avatars3.githubusercontent.com/u/1699385?v=3","gravatar_id":"","url":"https://api.github.com/users/wrwilliams","html_url":"https://github.com/wrwilliams","followers_url":"https://api.github.com/users/wrwilliams/followers","following_url":"https://api.github.com/users/wrwilliams/following{/other_user}","gists_url":"https://api.github.com/users/wrwilliams/gists{/gist_id}","starred_url":"https://api.github.com/users/wrwilliams/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wrwilliams/subscriptions","organizations_url":"https://api.github.com/users/wrwilliams/orgs","repos_url":"https://api.github.com/users/wrwilliams/repos","events_url":"https://api.github.com/users/wrwilliams/events{/privacy}","received_events_url":"https://api.github.com/users/wrwilliams/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-04-04T16:43:26Z","updated_at":"2017-04-04T16:43:26Z","closed_at":null,"body":"From @mwkrentel:\r\n```\r\nThread 1, where gdb says the segfault happened.\r\n\r\n\r\n#0  0x00007fe01a8d9272 in malloc_consolidate () from /lib64/libc.so.6\r\n#1  0x00007fe01a8dc405 in _int_malloc () from /lib64/libc.so.6\r\n#2  0x00007fe01a8dd626 in calloc () from /lib64/libc.so.6\r\n#3  0x00007fe01a8d222d in open_memstream () from /lib64/libc.so.6\r\n#4  0x00007fe01a947c8b in __vsyslog_chk () from /lib64/libc.so.6\r\n#5  0x00007fe01a8d378e in __libc_message () from /lib64/libc.so.6\r\n#6  0x00007fe01a8d9166 in malloc_printerr () from /lib64/libc.so.6\r\n#7  0x00007fe01a8dcf1f in _int_malloc () from /lib64/libc.so.6\r\n#8  0x00007fe01a8dd991 in malloc () from /lib64/libc.so.6\r\n#9  0x00007fe01b558f88 in operator new(unsigned long) () at\r\n../../../../libstdc++-v3/libsupc++/new_op.cc:50\r\n#10 0x00007fe01cf938ed in\r\n_ZNSt8_Rb_treeIPN7Dyninst8ParseAPI5BlockESt4pairIKS3_S3_ESt10_Select1stIS6_ESt4lessIS3_ESaIS6_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS5_EESH_IJEEEEESt17_Rb_tree_iteratorIS6_ESt23_Rb_tree_const_iteratorIS6_EDpOT_.isra.225\r\n()\r\n     at\r\n/opt/apps/software/Core/GCC/6.2.0/include/c++/6.2.0/ext/new_allocator.h:104\r\n#11 0x00007fe01cf93bcc in\r\nDyninst::ParseAPI::LoopAnalyzer::LoopAnalyzer(Dyninst::ParseAPI::Function\r\nconst*) ()\r\n     at\r\n/opt/apps/software/Core/GCC/6.2.0/include/c++/6.2.0/bits/stl_map.h:483\r\n#12 0x00007fe01cf1f0ba in Dyninst::ParseAPI::Function::getLoopTree()\r\nconst ()\r\n     at\r\n/dascratch/krentel/cilk/externals/BUILD-bill/symtabAPI/dyninst/parseAPI/src/Function.C:663\r\n#13 0x0000000000402980 in doFunction(Dyninst::ParseAPI::Function*) () at\r\ncilk-parse.cpp:275\r\n#14 0x0000000000402dda in main._cilk_for_fn.0 () at cilk-parse.cpp:406\r\n#15 0x00007fe01b031cd1 in void call_cilk_for_loop_body<unsigned long,\r\nvoid (*)(void*, unsigned long, unsigned long)>(unsigned long, unsigned\r\nlong, void (*)(void*, unsigned long, unsigned long), void*,\r\n__cilkrts_worker*, __cilkrts_pedigree*) ()\r\n    from /opt/apps/software/Core/GCC/6.2.0/lib64/libcilkrts.so.5\r\n...\r\n\r\n\r\nAnd thread 2 inside InstructionAPI.\r\n\r\n#0  Dyninst::InstructionAPI::Instruction::~Instruction() ()\r\n     at\r\n/dascratch/krentel/cilk/install/boost/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:158\r\n#1  0x00007fe01cbd47f1 in\r\nboost::detail::sp_counted_impl_pd<Dyninst::InstructionAPI::Instruction*,\r\nPoolDestructor<Dyninst::InstructionAPI::Instruction> >::dispose() ()\r\n     at\r\n/dascratch/krentel/cilk/externals/BUILD-bill/symtabAPI/dyninst/instructionAPI/src/../../common/src/singleton_object_pool.h:120\r\n#2  0x0000000000402eeb in std::_Rb_tree<unsigned long,\r\nstd::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> >,\r\nstd::_Select1st<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >,\r\nstd::less<unsigned long>, std::allocator<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >\r\n >::_M_erase(std::_Rb_tree_node<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >*) ()\r\n     at\r\n/dascratch/krentel/cilk/install/boost/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:146\r\n#3  0x0000000000402ec7 in std::_Rb_tree<unsigned long,\r\nstd::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> >,\r\nstd::_Select1st<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >,\r\nstd::less<unsigned long>, std::allocator<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >\r\n >::_M_erase(std::_Rb_tree_node<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >*) () at\r\n/opt/apps/software/Core/GCC/6.2.0/include/c++/6.2.0/bits/stl_tree.h:1613\r\n#4  0x0000000000402ec7 in std::_Rb_tree<unsigned long,\r\nstd::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> >,\r\nstd::_Select1st<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >,\r\nstd::less<unsigned long>, std::allocator<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >\r\n >::_M_erase(std::_Rb_tree_node<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >*) () at\r\n/opt/apps/software/Core/GCC/6.2.0/include/c++/6.2.0/bits/stl_tree.h:1613\r\n#5  0x0000000000402ec7 in std::_Rb_tree<unsigned long,\r\nstd::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> >,\r\nstd::_Select1st<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >,\r\nstd::less<unsigned long>, std::allocator<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >\r\n >::_M_erase(std::_Rb_tree_node<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >*) () at\r\n/opt/apps/software/Core/GCC/6.2.0/include/c++/6.2.0/bits/stl_tree.h:1613\r\n#6  0x0000000000402ec7 in std::_Rb_tree<unsigned long,\r\nstd::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> >,\r\nstd::_Select1st<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >,\r\nstd::less<unsigned long>, std::allocator<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >\r\n >::_M_erase(std::_Rb_tree_node<std::pair<unsigned long const,\r\nboost::shared_ptr<Dyninst::InstructionAPI::Instruction> > >*) () at\r\n/opt/apps/software/Core/GCC/6.2.0/include/c++/6.2.0/bits/stl_tree.h:1613\r\n#7  0x000000000040263b in doBlock(Dyninst::ParseAPI::Block*,\r\nstd::map<Dyninst::ParseAPI::Block*, bool,\r\nstd::less<Dyninst::ParseAPI::Block*>,\r\nstd::allocator<std::pair<Dyninst::ParseAPI::Block* const, bool> > >&,\r\nFuncInfo&) ()\r\n     at\r\n/opt/apps/software/Core/GCC/6.2.0/include/c++/6.2.0/bits/stl_tree.h:873\r\n#8  0x00000000004026d8 in doLoop(Dyninst::ParseAPI::Loop*,\r\nstd::map<Dyninst::ParseAPI::Block*, bool,\r\nstd::less<Dyninst::ParseAPI::Block*>,\r\nstd::allocator<std::pair<Dyninst::ParseAPI::Block* const, bool> > >&,\r\nFuncInfo&) () at cilk-parse.cpp:238\r\n#9  0x000000000040276d in doLoopTree(Dyninst::ParseAPI::LoopTreeNode*,\r\nstd::map<Dyninst::ParseAPI::Block*, bool,\r\nstd::less<Dyninst::ParseAPI::Block*>,\r\nstd::allocator<std::pair<Dyninst::ParseAPI::Block* const, bool> > >&,\r\nFuncInfo&) () at cilk-parse.cpp:256\r\n#10 0x00000000004027b1 in doLoopTree(Dyninst::ParseAPI::LoopTreeNode*,\r\nstd::map<Dyninst::ParseAPI::Block*, bool,\r\nstd::less<Dyninst::ParseAPI::Block*>,\r\nstd::allocator<std::pair<Dyninst::ParseAPI::Block* const, bool> > >&,\r\nFuncInfo&) () at cilk-parse.cpp:251\r\n#11 0x0000000000402a2c in doFunction(Dyninst::ParseAPI::Function*) () at\r\ncilk-parse.cpp:280\r\n#12 0x0000000000402dda in main._cilk_for_fn.0 () at cilk-parse.cpp:406\r\n#13 0x00007fe01b031cd1 in void call_cilk_for_loop_body<unsigned long,\r\nvoid (*)(void*, unsigned long, unsigned long)>(unsigned long, unsigned\r\nlong, void (*)(void*, unsigned long, unsigned long), void*,\r\n__cilkrts_worker*, __cilkrts_pedigree*) ()\r\n    from /opt/apps/software/Core/GCC/6.2.0/lib64/libcilkrts.so.5\r\n```"}}
{"actor":{"display_login":"wrwilliams"}}