Uploaded image for project: 'MariaDB MaxScale'
  1. MariaDB MaxScale
  2. MXS-5248

Debug assertion due to non-existent dcall ID

    XMLWordPrintable

Details

    • 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): :?
      

      Attachments

        Activity

          People

            markus makela markus makela
            markus makela markus makela
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.