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

safe_mutex: Found wrong usage of mutex 'LOCK_commit_ordered' and 'LOCK_global_system_variables', or of mutex 'LOCK_global_system_variables' and 'LOCK_log', on setting max_binlog_size or binlog_checksum and START TRANSACTION

Details

    Description

      # mysqld options required for replay: --log-bin
      SET GLOBAL max_binlog_size=98304;  # A valid and arbritary setting
      START TRANSACTION WITH CONSISTENT SNAPSHOT;
      

      Leads to:

      10.11.0 6ebdd3013a18b01dbecec76b870810329eb76586 (Debug)

      safe_mutex: Found wrong usage of mutex 'LOCK_commit_ordered' and 'LOCK_global_system_variables'
      

      And

      # mysqld options required for replay: --log-bin
      START TRANSACTION WITH CONSISTENT SNAPSHOT;
      SET GLOBAL max_binlog_size=98304;  # A valid and arbritary setting
      

      Leads to:

      10.11.0 6ebdd3013a18b01dbecec76b870810329eb76586 (Debug)

      safe_mutex: Found wrong usage of mutex 'LOCK_global_system_variables' and 'LOCK_log'
      

      Bug confirmed present in:
      MariaDB: 10.3.37 (dbg), 10.4.27 (dbg), 10.5.18 (dbg), 10.6.10 (dbg), 10.7.6 (dbg), 10.8.5 (dbg), 10.9.3 (dbg), 10.10.2 (dbg), 10.11.0 (dbg)

      Attachments

        Issue Links

          Activity

            Also with binlog_checksum, as in

            --source include/have_innodb.inc
            --source include/have_log_bin.inc
             
            SET GLOBAL binlog_checksum= CRC32;
            START TRANSACTION WITH CONSISTENT SNAPSHOT;
            

            The problem is old though.

            elenst Elena Stepanova added a comment - Also with binlog_checksum , as in --source include/have_innodb.inc --source include/have_log_bin.inc   SET GLOBAL binlog_checksum= CRC32; START TRANSACTION WITH CONSISTENT SNAPSHOT; The problem is old though.
            Roel Roel Van de Paar added a comment - - edited

            Was able to catch a bit more info with this testcase

            # mysqld options required for replay: --log-bin
            SET GLOBAL max_binlog_size=0;
            START TRANSACTION WITH CONSISTENT SNAPSHOT;
            

            10.11.0 6ebdd3013a18b01dbecec76b870810329eb76586 (Debug)

            safe_mutex: Found wrong usage of mutex 'LOCK_commit_ordered' and 'LOCK_global_system_variables'
            Mutex currently locked (in reverse order):
            LOCK_global_system_variables      /test/10.11_dbg/sql/sql_plugin.cc  line 3096
            LOCK_commit_ordered               /test/10.11_dbg/sql/handler.cc  line 3007
            

            Same source code line numbers for the testcase by elenst (with thanks!)

            Roel Roel Van de Paar added a comment - - edited Was able to catch a bit more info with this testcase # mysqld options required for replay: --log-bin SET GLOBAL max_binlog_size=0; START TRANSACTION WITH CONSISTENT SNAPSHOT; 10.11.0 6ebdd3013a18b01dbecec76b870810329eb76586 (Debug) safe_mutex: Found wrong usage of mutex 'LOCK_commit_ordered' and 'LOCK_global_system_variables' Mutex currently locked (in reverse order): LOCK_global_system_variables /test/10.11_dbg/sql/sql_plugin.cc line 3096 LOCK_commit_ordered /test/10.11_dbg/sql/handler.cc line 3007 Same source code line numbers for the testcase by elenst (with thanks!)
            Roel Roel Van de Paar added a comment - - edited

            Also please try:

            # mysqld options required for replay: --log-bin
            START TRANSACTION WITH CONSISTENT SNAPSHOT;
            FLUSH LOGS;
            SET GLOBAL binlog_checksum=NONE;
            

            11.3.0 126157061b4376496c034a809ea4943e863d1465 (Debug)

            2023-12-07 15:08:21 0 [Note] /test/MD311023-mariadb-11.3.0-linux-x86_64-dbg/bin/mariadbd: ready for connections.
            Version: '11.3.0-MariaDB-debug-log'  socket: '/test/MD311023-mariadb-11.3.0-linux-x86_64-dbg/socket.sock'  port: 10415  MariaDB Server
            2023-12-07 15:08:21 6 [Note] Start binlog_dump to slave_server(2), pos(, 4), using_gtid(1), gtid('')
            safe_mutex: Found wrong usage of mutex 'LOCK_global_system_variables' and 'LOCK_log'
            Mutex currently locked (in reverse order):
            LOCK_log                          /test/11.3_dbg/sql/log.cc  line 12235
            LOCK_global_system_variables      /test/11.3_dbg/sql/sys_vars_shared.h  line 56
            

            Roel Roel Van de Paar added a comment - - edited Also please try: # mysqld options required for replay: --log-bin START TRANSACTION WITH CONSISTENT SNAPSHOT; FLUSH LOGS; SET GLOBAL binlog_checksum=NONE; 11.3.0 126157061b4376496c034a809ea4943e863d1465 (Debug) 2023-12-07 15:08:21 0 [Note] /test/MD311023-mariadb-11.3.0-linux-x86_64-dbg/bin/mariadbd: ready for connections. Version: '11.3.0-MariaDB-debug-log' socket: '/test/MD311023-mariadb-11.3.0-linux-x86_64-dbg/socket.sock' port: 10415 MariaDB Server 2023-12-07 15:08:21 6 [Note] Start binlog_dump to slave_server(2), pos(, 4), using_gtid(1), gtid('') safe_mutex: Found wrong usage of mutex 'LOCK_global_system_variables' and 'LOCK_log' Mutex currently locked (in reverse order): LOCK_log /test/11.3_dbg/sql/log.cc line 12235 LOCK_global_system_variables /test/11.3_dbg/sql/sys_vars_shared.h line 56
            Roel Roel Van de Paar added a comment - - edited

            # mysqld options required for replay: --log-bin 
            SET GLOBAL binlog_checksum=DEFAULT;
            START TRANSACTION WITH CONSISTENT SNAPSHOT,READ WRITE;
            

            safe_mutex: Found wrong usage of mutex LOCK_commit_ordered and LOCK_global_system_variables
            

            Roel Roel Van de Paar added a comment - - edited # mysqld options required for replay: --log-bin SET GLOBAL binlog_checksum= DEFAULT ; START TRANSACTION WITH CONSISTENT SNAPSHOT, READ WRITE; safe_mutex: Found wrong usage of mutex LOCK_commit_ordered and LOCK_global_system_variables

            Elkin Hi! Would you have a moment to check how serious this issue is under the hood? Thank you

            Roel Roel Van de Paar added a comment - Elkin Hi! Would you have a moment to check how serious this issue is under the hood? Thank you

            The same problem will probably also occur for max_binlog_total_size, which is available since 11.4.

            knielsen Kristian Nielsen added a comment - The same problem will probably also occur for max_binlog_total_size, which is available since 11.4.
            elenst Elena Stepanova added a comment - - edited

            Sure. It would be recognized as a known bug (this one) and ignored in tests.

            elenst Elena Stepanova added a comment - - edited Sure. It would be recognized as a known bug (this one) and ignored in tests.

            knielsen Hi! Thank you for working on this. I see you put this in review but I cannot see an attached patch?

            Roel Roel Van de Paar added a comment - knielsen Hi! Thank you for working on this. I see you put this in review but I cannot see an attached patch?

            The patch is in branch bb-10.6-knielsen

            knielsen Kristian Nielsen added a comment - The patch is in branch bb-10.6-knielsen

            sergLet me know if you're going to review this week, otherwise I'll just take it back and push it with your suggestion to use mysql_mutex_record_order()

            knielsen Kristian Nielsen added a comment - serg Let me know if you're going to review this week, otherwise I'll just take it back and push it with your suggestion to use mysql_mutex_record_order()

            I was going to review it in about 2-3 weeks (note that the release is planned for the end of Jan)

            serg Sergei Golubchik added a comment - I was going to review it in about 2-3 weeks (note that the release is planned for the end of Jan)
            knielsen Kristian Nielsen added a comment - Pushed to 10.6. Requires another patch when merged to 11.4, see here: https://lists.mariadb.org/hyperkitty/list/developers@lists.mariadb.org/thread/LN35WETUEUHYUQNZXAKXLVU5EGSCQSVX/

            People

              knielsen Kristian Nielsen
              Roel Roel Van de Paar
              Votes:
              0 Vote for this issue
              Watchers:
              6 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.