-
Notifications
You must be signed in to change notification settings - Fork 357
Open
Description
Hello Together,
We sometimes get an std::bad_alloc exception when the OS fails to allocate memory.
the coredump backtrace is below.
Is there any ways to prevent process coredump?
Or, would you please catch the exeception and ignore it? It would be better to keep the program running continuously rather than terminating it due to metric issues
The version is v0.8.0. And it seems that other versions will also may trigger the exception.
?? ??:0
?? ??:0
?? ??:0
__gnu_cxx::__verbose_terminate_handler() [clone .cold] at vterminate.o:?
__cxxabiv1::__terminate(void (*)()) at ??:?
std::terminate() at ??:?
__cxa_rethrow at ??:?
prometheus::ClientMetric* std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<prometheus::ClientMetric const*, std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> > >, prometheus::ClientMetric*>(__gnu_cxx::__normal_iterator<prometheus::ClientMetric const*, std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> > >, __gnu_cxx::__normal_iterator<prometheus::ClientMetric const*, std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> > >, prometheus::ClientMetric*) at ??:?
prometheus::ClientMetric* std::uninitialized_copy<__gnu_cxx::__normal_iterator<prometheus::ClientMetric const*, std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> > >, prometheus::ClientMetric*>(__gnu_cxx::__normal_iterator<prometheus::ClientMetric const*, std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> > >, __gnu_cxx::__normal_iterator<prometheus::ClientMetric const*, std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> > >, prometheus::ClientMetric*) at ??:?
prometheus::ClientMetric* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<prometheus::ClientMetric const*, std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> > >, prometheus::ClientMetric*, prometheus::ClientMetric>(__gnu_cxx::__normal_iterator<prometheus::ClientMetric const*, std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> > >, __gnu_cxx::__normal_iterator<prometheus::ClientMetric const*, std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> > >, prometheus::ClientMetric*, std::allocator<prometheus::ClientMetric>&) at ??:?
std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> >::vector(std::vector<prometheus::ClientMetric, std::allocator<prometheus::ClientMetric> > const&) at ??:?
prometheus::MetricFamily::MetricFamily(prometheus::MetricFamily const&) at ??:?
prometheus::Family<prometheus::Counter>::Collect() at ??:?
void prometheus::(anonymous namespace)::CollectAll<std::vector<std::unique_ptr<prometheus::Family<prometheus::Counter>, std::default_delete<prometheus::Family<prometheus::Counter> > >, std::allocator<std::unique_ptr<prometheus::Family<prometheus::Counter>, std::default_delete<prometheus::Family<prometheus::Counter> > > > > >(std::vector<prometheus::MetricFamily, std::allocator<prometheus::MetricFamily> >&, std::vector<std::unique_ptr<prometheus::Family<prometheus::Counter>, std::default_delete<prometheus::Family<prometheus::Counter> > >, std::allocator<std::unique_ptr<prometheus::Family<prometheus::Counter>, std::default_delete<prometheus::Family<prometheus::Counter> > > > > const&) at registry.cc:?
prometheus::Registry::Collect() at ??:?
prometheus::detail::MetricsHandler::CollectMetrics() const at ??:?
prometheus::detail::MetricsHandler::handleGet(CivetServer*, mg_connection*) at ??:?
CivetServer::requestHandler(mg_connection*, void*) at ??:?
handle_request at civetweb.c:?
process_new_connection at civetweb.c:?
worker_thread_run at civetweb.c:?
worker_thread at civetweb.c:?
?? ??:0
Metadata
Metadata
Assignees
Labels
No labels