prometheus-cpp icon indicating copy to clipboard operation
prometheus-cpp copied to clipboard

Possible memory corruption

Open VivekSubr opened this issue 3 years ago • 1 comments

We are seeing a rare crash in prometheus cpp lib, unable to reproduce this to run valgrind ect,

0 libc.so.6!__memcpy_evex_unaligned_erms + 0xb0 1 libstdc++.so.6!std::__cxx11::basic_string<char, std::char_traits, std::allocator >::_M_assign(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) + 0x56 2 libstdc++.so.6!std::__cxx11::basic_string<char, std::char_traits, std::allocator >::operator=(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) + 0xe 3 libprometheus-cpp-core.so.0.12!prometheus::Familyprometheus::Counter::CollectMetric(unsigned long, prometheus::Counter*) const::{lambda(std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > const&)#1}::operator()(std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > const&) const + 0x5b 4 libprometheus-cpp-core.so.0.12!prometheus::Familyprometheus::Counter::CollectMetric(unsigned long, prometheus::Counter*) const::{lambda(std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > const&)#1} std::for_each<std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, prometheus::Familyprometheus::Counter::CollectMetric(unsigned long, prometheus::Counter*) const::{lambda(std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > const&)#1}>(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, prometheus::Familyprometheus::Counter::CollectMetric(unsigned long, prometheus::Counter*) const::{lambda(std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > const&)#1}) + 0x5d 5 libprometheus-cpp-core.so.0.12!prometheus::Familyprometheus::Counter::CollectMetric(unsigned long, prometheus::Counter*) const + 0xbb 6 libprometheus-cpp-core.so.0.12!prometheus::Familyprometheus::Counter::Collect() const + 0x14b 7 libprometheus-cpp-core.so.0.12!void prometheus::(anonymous namespace)::CollectAll<std::vector<std::unique_ptr<prometheus::Familyprometheus::Counter, std::default_delete<prometheus::Familyprometheus::Counter > >, std::allocator<std::unique_ptr<prometheus::Familyprometheus::Counter, std::default_delete<prometheus::Familyprometheus::Counter > > > > >(std::vector<prometheus::MetricFamily, std::allocatorprometheus::MetricFamily >&, std::vector<std::unique_ptr<prometheus::Familyprometheus::Counter, std::default_delete<prometheus::Familyprometheus::Counter > >, std::allocator<std::unique_ptr<prometheus::Familyprometheus::Counter, std::default_delete<prometheus::Familyprometheus::Counter > > > > const&) + 0x88 8 libprometheus-cpp-core.so.0.12!prometheus::Registry::Collect() const + 0x6e 9 libBaseFramework.so!base::PromStatsReporter::metricsUriCb(std::shared_ptrbase::MsgBuffer&, std::unique_ptr<base::IpcMsgHeader, std::default_deletebase::IpcMsgHeader >, std::unique_ptr<base::IpcCookie, std::default_deletebase::IpcCookie >) [promStatsReporter.h : 238 + 0x10]

Looks to be memory access error? We are using v0.12.1

VivekSubr avatar May 14 '22 08:05 VivekSubr

Hello, please try version 1.0.0 and report back in case the error persists. We fixed some concurrency bugs with the 1.0.0 version.

gjasny avatar May 14 '22 08:05 gjasny