Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
25.01.1
-
None
Description
The Diff router attempted to generate a summary at shutdown and it was not taken into account that if the router did not start properly, some data would not be available, which when nevertheless accessed caused the crash.
A summary is now generated at shutdown only if the Diff router started normally.
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::dump_stacktrace(std::function<void (char const*)>)): maxutils/maxbase/src/stacktrace.cc:201
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::_Function_base::~_Function_base()): /usr/include/c++/8/bits/std_function.h:256
|
/usr/bin/maxscale (sigfatal_handler(int)): server/core/gateway.cc:592
|
/lib64/libpthread.so.0 (__restore_rt): ??:?
|
/usr/lib64/maxscale/libdiff.so (DiffRouter::summary(DiffRouter::Summary, json_t**)): server/modules/routing/diff/diffrouter.cc:491
|
/usr/lib64/maxscale/libdiff.so (std::vector<std::shared_ptr<DiffQps>, std::allocator<std::shared_ptr<DiffQps> > >::~vector()): /usr/include/c++/8/bits/stl_vector.h:567
|
/usr/lib64/maxscale/libdiff.so (DiffRouter::~DiffRouter()): server/modules/routing/diff/diffrouter.cc:39
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::_Rb_tree<std::string, std::string, std::_Identity<std::string >, std::less<std::string >, std::allocator<std::string > >::~_Rb_tree()): /usr/include/c++/8/bits/stl_tree.h:972
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (Service::~Service()): server/core/service.cc:633
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (Service::create(char const*, json_t*)): /usr/include/c++/8/bits/unique_ptr.h:81
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (runtime_create_service_from_json(json_t*)): server/core/config_runtime.cc:2046
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxscale::ConfigManager::create_new_object(std::string const&, std::string const&, maxbase::Json&)): server/core/configmanager.cc:984
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxscale::ConfigManager::process_config(maxbase::Json const&)): /usr/include/c++/8/bits/basic_string.h:215
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxscale::ConfigManager::process_cached_config()): server/core/configmanager.cc:387
|
/usr/bin/maxscale (operator()): server/core/gateway.cc:2144
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::execute(std::function<void ()> const&, maxbase::Semaphore*, maxbase::Worker::execute_mode_t)::CustomTask::execute(maxbase::Worker&)): maxutils/maxbase/src/worker.cc:787
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::handle_message(maxbase::MessageQueue&, maxbase::MessageQueueMessage const&)): maxutils/maxbase/src/worker.cc:970
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::EventMessageQueue::handle_poll_events(maxbase::Worker*, unsigned int, maxbase::Pollable::Context)): maxutils/maxbase/src/messagequeue.cc:222
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::deliver_events(maxbase::Pollable*, unsigned int, maxbase::Pollable::Context)): maxutils/maxbase/src/worker.cc:1083
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::poll_waitevents()): maxutils/maxbase/src/worker.cc:1170
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::run(maxbase::Semaphore*)): maxutils/maxbase/src/worker.cc:874
|
/usr/bin/maxscale (main): server/core/gateway.cc:2280
|
/lib64/libc.so.6 (__libc_start_main): ??:?
|
/usr/bin/maxscale (_start): ??:?
|