Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
21.06.17, 22.08.14, 23.02.11, 23.08.7, 24.02.3, 24.08.0
-
None
-
MXS-SPRINT-217, MXS-SPRINT-218
Description
This is most likely a bug in how the schemarouter handles the delayed calls.
2024-09-05 12:54:54 error : (3254) (service37); debug assert at /home/timofey_turenko_mariadb_com/MaxScale/maxutils/maxbase/src/worker.cc:1340 failed: Attempt to remove delayed call using non-existent id 844424930135165. (!true)\n
|
2024-09-05 12:54:54 alert : (3254) (service37); MaxScale 99.99.99 received fatal signal 6. Commit ID: 492803514296d956f7d0e6c6f1403189bf874625, System name: Linux, Release string: Rocky Linux 8.10 (Green Obsidian), Thread: Worker-00
|
2024-09-05 12:54:54 alert : (3254) (service37); Last systemd watchdog notification was 29.9359s ago, notification interval is 30s.
|
2024-09-05 12:54:54 alert : (3254) (service37); Statement currently being classified: none/unknown
|
2024-09-05 12:54:54 alert : (3254) (service37); Session: 3254 Service: service0
|
2024-09-05 12:54:54 notice : (3254) (service37); For a more detailed stacktrace, install GDB.
|
2024-09-05 12:54:54 error : (3156) [MariaDBProtocol] Routing the query failed. Session will be closed.
|
2024-09-05 12:54:56 error : (3252) [readwritesplit] (service0); Failed to route query to 'server1'
|
2024-09-05 12:54:56 error : (3252) Failed to route query
|
2024-09-05 12:54:58 error : (3266) [MariaDBProtocol] Routing the query failed. Session will be closed.
|
/lib64/libasan.so.5 (__interceptor_timerfd_gettime): ??:?
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::dump_stacktrace(std::function<void (char const*)>)): maxutils/maxbase/src/stacktrace.cc:225
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::dump_stacktrace(void (*)(char const*))): maxutils/maxbase/src/stacktrace.cc:263 (discriminator 2)
|
/usr/bin/maxscale (sigfatal_handler(int)): server/core/gateway.cc:589
|
/lib64/libpthread.so.0 (__restore_rt): ??:?
|
/lib64/libpthread.so.0 (gsignal): :?
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::remove_dcall(long)): maxutils/maxbase/src/worker.cc:1340 (discriminator 4)
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::remove_dcall(maxbase::Worker::DCall*)): maxutils/maxbase/src/worker.cc:1373
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::cancel_dcall(maxbase::Worker::DCall*, bool)): maxutils/maxbase/src/worker.cc:1415
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::Callable::cancel_dcall(long, bool)): maxutils/maxbase/src/worker.cc:404
|
/usr/lib64/maxscale/libschemarouter.so (schemarouter::SchemaRouterSession::~SchemaRouterSession()): server/modules/routing/schemarouter/schemaroutersession.cc:85
|
/usr/lib64/maxscale/libschemarouter.so (void __gnu_cxx::new_allocator<schemarouter::SchemaRouterSession>::destroy<schemarouter::SchemaRouterSession>(schemarouter::SchemaRouterSession*)): /usr/include/c++/8/ext/new_allocator.h:140
|
/usr/lib64/maxscale/libschemarouter.so (void std::allocator_traits<std::allocator<schemarouter::SchemaRouterSession> >::destroy<schemarouter::SchemaRouterSession>(std::allocator<schemarouter::SchemaRouterSession>&, schemarouter::SchemaRouterSession*)): /usr/include/c++/8/bits/alloc_traits.h:487
|
/usr/lib64/maxscale/libschemarouter.so (std::_Sp_counted_ptr_inplace<schemarouter::SchemaRouterSession, std::allocator<schemarouter::SchemaRouterSession>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()): /usr/include/c++/8/bits/shared_ptr_base.h:555
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()): /usr/include/c++/8/bits/shared_ptr_base.h:167
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()): /usr/include/c++/8/bits/shared_ptr_base.h:729
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::__shared_ptr<maxscale::RouterSession, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr()): /usr/include/c++/8/bits/shared_ptr_base.h:1167
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::__shared_ptr<maxscale::RouterSession, (__gnu_cxx::_Lock_policy)2>::reset()): /usr/include/c++/8/bits/shared_ptr_base.h:1285
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (ServiceEndpoint::close()): server/core/service.cc:1604
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxscale::Backend::close(maxscale::Backend::close_type)): server/core/backend.cc:49 (discriminator 4)
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxscale::RWBackend::close(maxscale::Backend::close_type)): server/modules/protocol/MariaDB/rwbackend.cc:50
|
/usr/lib64/maxscale/libreadwritesplit.so (RWSplitSession::write_session_command(maxscale::RWBackend*, GWBUF&&, unsigned char)): server/modules/routing/readwritesplit/rwsplit_route_stmt.cc:397
|
/usr/lib64/maxscale/libreadwritesplit.so (RWSplitSession::route_session_write(GWBUF&&)): server/modules/routing/readwritesplit/rwsplit_route_stmt.cc:468 (discriminator 4)
|
/usr/lib64/maxscale/libreadwritesplit.so (RWSplitSession::handle_target_is_all(GWBUF&&)): server/modules/routing/readwritesplit/rwsplit_route_stmt.cc:109
|
/usr/lib64/maxscale/libreadwritesplit.so (RWSplitSession::route_stmt(GWBUF&&, RWSplitSession::RoutingPlan const&)): server/modules/routing/readwritesplit/rwsplit_route_stmt.cc:251
|
/usr/lib64/maxscale/libreadwritesplit.so (RWSplitSession::route_query(GWBUF&&)): server/modules/routing/readwritesplit/rwsplitsession.cc:119
|
/usr/lib64/maxscale/libreadwritesplit.so (RWSplitSession::retry_query(GWBUF&&, int)::{lambda(GWBUF&&)#1}::operator()(GWBUF&&) const): server/modules/routing/readwritesplit/rwsplit_route_stmt.cc:79
|
/usr/lib64/maxscale/libreadwritesplit.so (std::_Function_handler<bool (GWBUF&&), RWSplitSession::retry_query(GWBUF&&, int)::{lambda(GWBUF&&)#1}>::_M_invoke(std::_Any_data const&, GWBUF&&)): /usr/include/c++/8/bits/std_function.h:284
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::function<bool (GWBUF&&)>::operator()(GWBUF&&) const): /usr/include/c++/8/bits/std_function.h:688
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (MXS_SESSION::delay_routing(maxscale::Routable*, GWBUF&&, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::function<bool (GWBUF&&)>&&)::{lambda(maxbase::Worker::Callable::Action)#1}::operator()(maxbase::Worker::Callable::Action) const): server/core/session.cc:647
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::_Function_handler<bool (maxbase::Worker::Callable::Action), MXS_SESSION::delay_routing(maxscale::Routable*, GWBUF&&, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::function<bool (GWBUF&&)>&&)::{lambda(maxbase::Worker::Callable::Action)#1}>::_M_invoke(std::_Any_data const&, maxbase::Worker::Callable::Action&&)): /usr/include/c++/8/bits/std_function.h:284
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::function<bool (maxbase::Worker::Callable::Action)>::operator()(maxbase::Worker::Callable::Action) const): /usr/include/c++/8/bits/std_function.h:687
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::DCallFunctorWithCancel::do_call(maxbase::Worker::Callable::Action)): maxutils/maxbase/include/maxbase/worker.hh:1178
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::DCall::call(maxbase::Worker::Callable::Action)): maxutils/maxbase/include/maxbase/worker.hh:1017
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::tick()): maxutils/maxbase/src/worker.cc:1239
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::DelegatingTimer<maxbase::Worker>::tick()): maxutils/maxbase/include/maxbase/worker.hh:485 (discriminator 4)
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::WorkerTimer::handle_poll_events(maxbase::Worker*, unsigned int, maxbase::Pollable::Context)): maxutils/maxbase/src/worker.cc:337
|
/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:1081
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::poll_waitevents()): maxutils/maxbase/src/worker.cc:1170 (discriminator 2)
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::run(maxbase::Semaphore*)): maxutils/maxbase/src/worker.cc:872
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::Worker::thread_main(maxbase::Worker*, maxbase::Semaphore*)): maxutils/maxbase/src/worker.cc:999
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (void std::__invoke_impl<void, void (*)(maxbase::Worker*, maxbase::Semaphore*), maxbase::Worker*, maxbase::Semaphore*>(std::__invoke_other, void (*&&)(maxbase::Worker*, maxbase::Semaphore*), maxbase::Worker*&&, maxbase::Semaphore*&&)): /usr/include/c++/8/bits/invoke.h:60
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::__invoke_result<void (*)(maxbase::Worker*, maxbase::Semaphore*), maxbase::Worker*, maxbase::Semaphore*>::type std::__invoke<void (*)(maxbase::Worker*, maxbase::Semaphore*), maxbase::Worker*, maxbase::Semaphore*>(void (*&&)(maxbase::Worker*, maxbase::Semaphore*), maxbase::Worker*&&, maxbase::Semaphore*&&)): /usr/include/c++/8/bits/invoke.h:96
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (decltype (__invoke((_S_declval<0ul>)(), (_S_declval<1ul>)(), (_S_declval<2ul>)())) std::thread::_Invoker<std::tuple<void (*)(maxbase::Worker*, maxbase::Semaphore*), maxbase::Worker*, maxbase::Semaphore*> >::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>)): /usr/include/c++/8/thread:244
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::thread::_Invoker<std::tuple<void (*)(maxbase::Worker*, maxbase::Semaphore*), maxbase::Worker*, maxbase::Semaphore*> >::operator()()): /usr/include/c++/8/thread:253
|
/usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(maxbase::Worker*, maxbase::Semaphore*), maxbase::Worker*, maxbase::Semaphore*> > >::_M_run()): /usr/include/c++/8/thread:196
|
/lib64/libstdc++.so.6 (std::error_code::default_error_condition() const): ??:?
|
/lib64/libpthread.so.0 (start_thread): ??:?
|
/lib64/libc.so.6 (__GI___clone): :?
|