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

SIGSEGV's in OSMutex::enter and __GI___pthread_mutex_lock, and SIGABRT in safe_mutex_lock when using innodb-read-only=1

    XMLWordPrintable

Details

    Description

      Possibly related to MDEV-25890.

      # mysqld options required for replay:  --innodb-read-only=1
      SET GLOBAL innodb_encrypt_tables=DEFAULT;
      

      Leads to:

      10.7.2 979b23d5bfb11bb698ea65c9468b374978737ec0 (Debug)

      Core was generated by `/test/MD121221-mariadb-10.7.2-linux-x86_64-dbg/bin/mysqld --no-defaults --core-'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      [Current thread is 1 (Thread 0x14d91426b700 (LWP 958850))]
      (gdb) bt
      #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      #1  0x000014d91f4cf859 in __GI_abort () at abort.c:79
      #2  0x000055d97fb2967e in safe_mutex_lock (mp=mp@entry=0x55d980f0e0a0 <fil_crypt_threads_mutex>, my_flags=my_flags@entry=0, file=file@entry=0x55d97ffa8d70 "/test/10.7_dbg/storage/innobase/fil/fil0crypt.cc", line=line@entry=2252) at /test/10.7_dbg/mysys/thr_mutex.c:245
      #3  0x000055d97fa29642 in inline_mysql_mutex_lock (src_line=2252, src_file=0x55d97ffa8d70 "/test/10.7_dbg/storage/innobase/fil/fil0crypt.cc", that=0x55d980f0e0a0 <fil_crypt_threads_mutex>) at /test/10.7_dbg/include/mysql/psi/mysql_thread.h:750
      #4  fil_crypt_set_encrypt_tables (val=0) at /test/10.7_dbg/storage/innobase/fil/fil0crypt.cc:2252
      #5  0x000055d97f6ab2d9 in innodb_encrypt_tables_update (save=0x55d9805a3bd0 <mysql_sysvar_encrypt_tables+48>) at /test/10.7_dbg/storage/innobase/handler/ha_innodb.cc:18533
      #6  0x000055d97f02dd65 in sys_var_pluginvar::global_update (this=0x55d98297b410, thd=0x14d8ec000db8, var=0x14d8ec014018) at /test/10.7_dbg/sql/sql_plugin.cc:3621
      #7  0x000055d97ef07728 in sys_var::update (this=this@entry=0x55d98297b410, thd=thd@entry=0x14d8ec000db8, var=var@entry=0x14d8ec014018) at /test/10.7_dbg/sql/set_var.cc:207
      #8  0x000055d97ef07c37 in sys_var::set_default (this=0x55d98297b410, thd=0x14d8ec000db8, var=0x14d8ec014018) at /test/10.7_dbg/sql/set_var.cc:291
      #9  0x000055d97ef07c63 in set_var::update (this=<optimized out>, thd=<optimized out>) at /test/10.7_dbg/sql/set_var.cc:863
      #10 0x000055d97ef08f9b in sql_set_variables (thd=thd@entry=0x14d8ec000db8, var_list=var_list@entry=0x14d8ec0060d8, free=free@entry=true) at /test/10.7_dbg/sql/set_var.cc:745
      #11 0x000055d97f00fa02 in mysql_execute_command (thd=thd@entry=0x14d8ec000db8, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/10.7_dbg/sql/sql_parse.cc:5034
      #12 0x000055d97eff8e0f in mysql_parse (thd=thd@entry=0x14d8ec000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x14d91426a400) at /test/10.7_dbg/sql/sql_parse.cc:8028
      #13 0x000055d97f007aab in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14d8ec000db8, packet=packet@entry=0x14d8ec00b879 "SET GLOBAL innodb_encrypt_tables=DEFAULT", packet_length=packet_length@entry=40, blocking=blocking@entry=true) at /test/10.7_dbg/sql/sql_class.h:1360
      #14 0x000055d97f00aeea in do_command (thd=0x14d8ec000db8, blocking=blocking@entry=true) at /test/10.7_dbg/sql/sql_parse.cc:1402
      #15 0x000055d97f184902 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55d982e1eb28, put_in_cache=put_in_cache@entry=true) at /test/10.7_dbg/sql/sql_connect.cc:1418
      #16 0x000055d97f184f07 in handle_one_connection (arg=arg@entry=0x55d982e1eb28) at /test/10.7_dbg/sql/sql_connect.cc:1312
      #17 0x000055d97f60533e in pfs_spawn_thread (arg=0x55d982d1a5b8) at /test/10.7_dbg/storage/perfschema/pfs.cc:2201
      #18 0x000014d91f9de609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #19 0x000014d91f5cc293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      10.5.14 88b339805d7a9ddebc3fd61e9dee83270dbf474d (Optimized)

      Core was generated by `/test/MD121221-mariadb-10.5.14-linux-x86_64-opt/bin/mysqld --no-defaults --core'.
      Program terminated with signal SIGSEGV, Segmentation fault.
      #0  __GI___pthread_mutex_lock (mutex=mutex@entry=0x10)
          at ../nptl/pthread_mutex_lock.c:67
      [Current thread is 1 (Thread 0x14a25d500700 (LWP 958799))]
      (gdb) bt
      #0  __GI___pthread_mutex_lock (mutex=mutex@entry=0x10) at ../nptl/pthread_mutex_lock.c:67
      #1  0x000055dc4fb03ada in OSMutex::enter (this=0x10) at /test/10.5_opt/storage/innobase/include/sync0types.h:397
      #2  os_event::set (this=0x0) at /test/10.5_opt/storage/innobase/os/os0event.cc:62
      #3  os_event_set (event=0x0) at /test/10.5_opt/storage/innobase/os/os0event.cc:451
      #4  0x000055dc4fc61d9d in fil_crypt_set_encrypt_tables (val=0) at /test/10.5_opt/storage/innobase/fil/fil0crypt.cc:2385
      #5  0x000055dc4fa7fe75 in innodb_encrypt_tables_update (save=0x55dc50645af0 <mysql_sysvar_encrypt_tables+48>) at /test/10.5_opt/storage/innobase/handler/ha_innodb.cc:18529
      #6  0x000055dc4f558bdf in sys_var_pluginvar::global_update (this=0x55dc5226d0f0, thd=0x14a240000c58, var=0x14a240010638) at /test/10.5_opt/sql/sql_plugin.cc:3617
      #7  0x000055dc4f48b0e1 in sys_var::update (this=0x55dc5226d0f0, thd=0x14a240000c58, var=0x14a240010638) at /test/10.5_opt/sql/set_var.cc:207
      #8  0x000055dc4f48b615 in set_var::update (thd=<optimized out>, this=<optimized out>) at /test/10.5_opt/sql/set_var.cc:857
      #9  set_var::update (this=<optimized out>, thd=<optimized out>) at /test/10.5_opt/sql/set_var.cc:857
      #10 0x000055dc4f48c8f9 in sql_set_variables (thd=thd@entry=0x14a240000c58, var_list=var_list@entry=0x14a240005b78, free=free@entry=true) at /test/10.5_opt/sql/set_var.cc:746
      #11 0x000055dc4f55039f in mysql_execute_command (thd=0x14a240000c58) at /test/10.5_opt/sql/sql_parse.cc:5095
      #12 0x000055dc4f53d243 in mysql_parse (thd=0x14a240000c58, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /test/10.5_opt/sql/sql_parse.cc:8100
      #13 0x000055dc4f54a05d in dispatch_command (command=COM_QUERY, thd=0x14a240000c58, packet=<optimized out>, packet_length=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /test/10.5_opt/sql/sql_class.h:1290
      #14 0x000055dc4f54c832 in do_command (thd=0x14a240000c58) at /test/10.5_opt/sql/sql_parse.cc:1370
      #15 0x000055dc4f6542e1 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55dc5290afd8, put_in_cache=put_in_cache@entry=true) at /test/10.5_opt/sql/sql_connect.cc:1418
      #16 0x000055dc4f65475d in handle_one_connection (arg=arg@entry=0x55dc5290afd8) at /test/10.5_opt/sql/sql_connect.cc:1312
      #17 0x000055dc4f9e4999 in pfs_spawn_thread (arg=0x55dc52887d88) at /test/10.5_opt/storage/perfschema/pfs.cc:2201
      #18 0x000014a2748a0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #19 0x000014a27448e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      10.5.14 88b339805d7a9ddebc3fd61e9dee83270dbf474d (Debug)

      Core was generated by `/test/MD121221-mariadb-10.5.14-linux-x86_64-dbg/bin/mysqld --no-defaults --core'.
      Program terminated with signal SIGSEGV, Segmentation fault.
      #0  OSMutex::enter (this=0x10)
          at /test/10.5_dbg/storage/innobase/include/sync0types.h:393
      393			ut_ad(!m_freed);
      [Current thread is 1 (Thread 0x153830726700 (LWP 959258))]
      (gdb) bt
      #0  OSMutex::enter (this=0x10) at /test/10.5_dbg/storage/innobase/include/sync0types.h:393
      #1  os_event::set (this=0x0) at /test/10.5_dbg/storage/innobase/os/os0event.cc:62
      #2  os_event_set (event=0x0) at /test/10.5_dbg/storage/innobase/os/os0event.cc:451
      #3  0x000055adc9d37e1b in fil_crypt_set_encrypt_tables (val=<optimized out>) at /test/10.5_dbg/storage/innobase/fil/fil0crypt.cc:2385
      #4  0x000055adc997c9fe in innodb_encrypt_tables_update (save=0x55adca894590 <mysql_sysvar_encrypt_tables+48>) at /test/10.5_dbg/storage/innobase/handler/ha_innodb.cc:18529
      #5  0x000055adc92cb685 in sys_var_pluginvar::global_update (this=0x55adcc6f3ce8, thd=0x15380c000db8, var=0x15380c013f28) at /test/10.5_dbg/sql/sql_plugin.cc:3617
      #6  0x000055adc91b9784 in sys_var::update (this=this@entry=0x55adcc6f3ce8, thd=thd@entry=0x15380c000db8, var=var@entry=0x15380c013f28) at /test/10.5_dbg/sql/set_var.cc:207
      #7  0x000055adc91b9c9d in sys_var::set_default (this=0x55adcc6f3ce8, thd=0x15380c000db8, var=0x15380c013f28) at /test/10.5_dbg/sql/set_var.cc:291
      #8  0x000055adc91b9cc9 in set_var::update (this=<optimized out>, thd=<optimized out>) at /test/10.5_dbg/sql/set_var.cc:859
      #9  0x000055adc91bb038 in sql_set_variables (thd=thd@entry=0x15380c000db8, var_list=var_list@entry=0x15380c005e98, free=free@entry=true) at /test/10.5_dbg/sql/set_var.cc:746
      #10 0x000055adc92c089d in mysql_execute_command (thd=thd@entry=0x15380c000db8) at /test/10.5_dbg/sql/sql_parse.cc:5095
      #11 0x000055adc92a8bce in mysql_parse (thd=thd@entry=0x15380c000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x1538307253d0, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_parse.cc:8100
      #12 0x000055adc92b8421 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x15380c000db8, packet=packet@entry=0x15380c00b4a9 "SET GLOBAL innodb_encrypt_tables=DEFAULT", packet_length=packet_length@entry=40, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_class.h:1290
      #13 0x000055adc92bbc9d in do_command (thd=0x15380c000db8) at /test/10.5_dbg/sql/sql_parse.cc:1370
      #14 0x000055adc9419082 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55adcd1a2438, put_in_cache=put_in_cache@entry=true) at /test/10.5_dbg/sql/sql_connect.cc:1418
      #15 0x000055adc9419785 in handle_one_connection (arg=arg@entry=0x55adcd1a2438) at /test/10.5_dbg/sql/sql_connect.cc:1312
      #16 0x000055adc98d5dff in pfs_spawn_thread (arg=0x55adcc6df178) at /test/10.5_dbg/storage/perfschema/pfs.cc:2201
      #17 0x000015383a0bb609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #18 0x0000153839ca9293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      Bug confirmed present in:
      MariaDB: 10.2.42 (dbg), 10.2.42 (opt), 10.3.33 (dbg), 10.3.33 (opt), 10.4.23 (dbg), 10.4.23 (opt), 10.5.14 (dbg), 10.5.14 (opt), 10.6.6 (dbg), 10.7.2 (dbg), 10.8.0 (dbg)

      Bug (or feature/syntax) confirmed not present in:
      MariaDB: 10.6.6 (opt), 10.7.2 (opt), 10.8.0 (opt)
      MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.36 (dbg), 5.7.36 (opt), 8.0.27 (dbg), 8.0.27 (opt)

      Note the change in 10.6 optimized builds onwards. Something must have changed.

      Attachments

        Activity

          People

            marko Marko Mäkelä
            Roel Roel Van de Paar
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.