Skip to content

v0.8.0 throws std::bad_alloc exception #741

Description

@lxh-ob

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions