Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-37299

Server aborts when creating encryption threads in read-only mode

    XMLWordPrintable

Details

    • Can result in hang or crash
    • Hide
      When the server was started in read-only mode with encryption enabled,
      the fix ensures that InnoDB avoids creating any encryption thread.
      Testing: encryption.innodb-read-only(MTR Test) contains scenario that can be used to test this change.
      Show
      When the server was started in read-only mode with encryption enabled, the fix ensures that InnoDB avoids creating any encryption thread. Testing: encryption.innodb-read-only(MTR Test) contains scenario that can be used to test this change.
    • Q4/2025 Server Maintenance

    Description

      -- source include/have_innodb.inc
      -- source filekeys_plugin_exists.inc
       
      --let $restart_parameters=--innodb-encrypt-tables=ON --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt --innodb-read-only=1
      --source include/restart_mysqld.inc
       
      SET GLOBAL innodb_encryption_threads=4;
      

      Leads to:

      CS 10.11.14 55e0c34f4f00ca70ad8d6f0522efa94bb81f74fb (Debug, Clang) Build 21/07/2025

      mariadbd: /test/10.11_dbg/include/ilist.h:79: ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator(ListNode *) [T = fil_space_t, Tag = space_list_tag_t]: Assertion `node_ != nullptr' failed.
      

      CS 10.11.14 55e0c34f4f00ca70ad8d6f0522efa94bb81f74fb (Debug, Clang) Build 21/07/2025

      Core was generated by `/test/MD210725-mariadb-10.11.14-linux-x86_64-dbg/bin/mariadbd --no-defaults --c'.
      Program terminated with signal SIGABRT, Aborted.
      Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_kill.c.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 1210966)]
      (gdb) bt
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
      #3  0x00007f0d4a44527e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x00007f0d4a4288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x00007f0d4a42881b in __assert_fail_base (fmt=0x7f0d4a5d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x55cd75189e06 "node_ != nullptr", file=file@entry=0x55cd75189de6 "/test/10.11_dbg/include/ilist.h", line=line@entry=79, function=function@entry=0x55cd7523c2c0 "ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator(ListNode *) [T = fil_space_t, Tag = space_list_tag_t]")at ./assert/assert.c:96
      #6  0x00007f0d4a43b517 in __assert_fail (assertion=0x55cd75189e06 "node_ != nullptr", file=0x55cd75189de6 "/test/10.11_dbg/include/ilist.h", line=79, function=0x55cd7523c2c0 "ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator(ListNode *) [T = fil_space_t, Tag = space_list_tag_t]")at ./assert/assert.c:105
      #7  0x000055cd749dec27 in ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator (this=0x7f056bffea48, node=0x0) at /test/10.11_dbg/include/ilist.h:79
      #8  0x000055cd74d64b6e in fil_crypt_find_space_to_rotate (key_state=0x7f056bffeb00, state=0x7f056bffeb10, recheck=0x7f056bffeb0f)at /test/10.11_dbg/storage/innobase/fil/fil0crypt.cc:1511
      #9  0x000055cd74d629ff in fil_crypt_thread ()at /test/10.11_dbg/storage/innobase/fil/fil0crypt.cc:2047
      #10 0x000055cd74cde5a2 in std::__invoke_impl<void, void (*)()> (__f=@0x7f056c01e728: 0x55cd74d62940 <fil_crypt_thread()>)at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61
      #11 0x000055cd74cde565 in std::__invoke<void (*)()> (__fn=@0x7f056c01e728: 0x55cd74d62940 <fil_crypt_thread()>)at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96
      #12 0x000055cd74cde53d in std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul> (this=0x7f056c01e728)at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:301
      #13 0x000055cd74cde515 in std::thread::_Invoker<std::tuple<void (*)()> >::operator() (this=0x7f056c01e728)at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:308
      #14 0x000055cd74cde479 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run (this=0x7f056c01e720)at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:253
      #15 0x00007f0d4a8ecdb4 in std::execute_native_thread_routine (__p=0x7f056c01e720)at ../../../../../src/libstdc++-v3/src/c++11/thread.cc:104
      #16 0x00007f0d4a49caa4 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #17 0x00007f0d4a529c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Bug Detection Matrix

          Rel    o/d  Build   Commit                                    UniqueID observed             
      CS  10.6   dbg  100725  c27d78beb59b49bee7697a489743b4abe17bebe5  SIGABRT|ib::fatal::~fatal|log_t::file::write|log_write_buf|log_write                  
      CS  10.6   opt  100725  c27d78beb59b49bee7697a489743b4abe17bebe5  node_ != nullptr|SIGABRT|ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator|fil_crypt_find_space_to_rotate|fil_crypt_thread|std::__invoke_impl<void, void                  
      CS  10.11  dbg  210725  55e0c34f4f00ca70ad8d6f0522efa94bb81f74fb  node_ != nullptr|SIGABRT|ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator|fil_crypt_find_space_to_rotate|fil_crypt_thread|std::__invoke_impl<void, void
      CS  10.11  opt  210725  55e0c34f4f00ca70ad8d6f0522efa94bb81f74fb  SIGABRT|log_file_t::write|log_write_buf|log_t::write_buf<log0log.cc|log_writer                
      CS  11.4   dbg  300625  c742cc94baee27074100aa90eff96468bdd9943e  node_ != nullptr|SIGABRT|ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator|fil_crypt_find_space_to_rotate|fil_crypt_thread|std::__invoke_impl<void, void
      CS  11.4   opt  300625  c742cc94baee27074100aa90eff96468bdd9943e  SIGABRT|log_file_t::write|log_write_buf|log_t::write_buf<log0log.cc|log_writer
      CS  11.8   dbg  300625  311b4445c59caa36ed031f5499eae79d07b68c0c  node_ != nullptr|SIGABRT|ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator|fil_crypt_find_space_to_rotate|fil_crypt_thread|std::__invoke_impl<void, void     
      CS  11.8   opt  300625  a65f7dc71dcd9d6ca1399221f669641910130624  SIGABRT|log_file_t::write|log_write_buf|log_t::write_buf<log0log.cc|log_writer  
      CS  12.0   dbg  140725  107291bf980822fcc3c02bd4e01ecbc4db7fd192  node_ != nullptr|SIGABRT|ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator|fil_crypt_find_space_to_rotate|fil_crypt_thread|std::__invoke_impl<void, void   
      CS  12.0   opt  140725  107291bf980822fcc3c02bd4e01ecbc4db7fd192  SIGABRT|log_file_t::write|log_write_buf|log_t::write_buf<log0log.cc|log_writer              
      CS  12.1   dbg  210725  7215fe789480c228a91f50ff4f047ea89c16f041  node_ != nullptr|SIGABRT|ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator|fil_crypt_find_space_to_rotate|fil_crypt_thread|std::__invoke_impl<void, void                 
      CS  12.1   opt  210725  7215fe789480c228a91f50ff4f047ea89c16f041  SIGABRT|log_file_t::write|log_write_buf|log_t::write_buf<log0log.cc|log_writer
      ES  10.5   dbg  050525  0d368ec0042a81d9549fc939fb742f82350b20ab  !srv_read_only_mode || m_log_mode == MTR_LOG_NO_REDO|SIGABRT|mtr_t::commit|fil_crypt_start_encrypting_space|fil_crypt_space_needs_rotation|fil_crypt_find_space_to_rotate
      ES  10.5   opt  050525  0d368ec0042a81d9549fc939fb742f82350b20ab  SIGABRT|ib::fatal::~fatal|log_t::file::write|log_write_buf|log_write
      ES  10.6   dbg  050525  6111fbaf7bdcb6f1170f556ffd05d6e1a4159f62  node_ != nullptr|SIGABRT|ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator|fil_crypt_find_space_to_rotate|fil_crypt_thread|std::__invoke_impl<void, void
      ES  10.6   opt  050525  6111fbaf7bdcb6f1170f556ffd05d6e1a4159f62  SIGABRT|ib::fatal::~fatal|log_t::file::write|log_write_buf|log_write
      ES  11.4   dbg  050525  9cd12544ebfd0d52d2158af66b5aced58121cf1f  node_ != nullptr|SIGABRT|ilist<fil_space_t, space_list_tag_t>::Iterator::Iterator|fil_crypt_find_space_to_rotate|fil_crypt_thread|std::__invoke_impl<void, void
      ES  11.4   opt  050525  9cd12544ebfd0d52d2158af66b5aced58121cf1f  SIGABRT|log_file_t::write|log_write_buf|log_t::write_buf<log0log.cc|log_writer
      

      Attachments

        Activity

          People

            mariadb-satishkumar Satish Kumar (Inactive)
            ramesh Ramesh Sivaraman
            Votes:
            0 Vote for this issue
            Watchers:
            4 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.