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

InnoDB: Assertion failure in thread 139901753345792 in file buf0mtflu.cc line 439

    Details

      Description

      Race in shutdown, work queue is not empty after we have sent the exit messages to work queue.

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            jplindst Jan Lindström added a comment -

            revno: 4010
            committer: Jan Lindström <jplindst@mariadb.org>
            branch nick: 10.0-FusionIO-release
            timestamp: Fri 2015-01-09 09:29:59 +0200
            message:
            MDEV-7424: InnoDB: Assertion failure in thread 139901753345792
            in file buf0mtflu.cc line 439

            Analysis: At shutdown multi-threaded flush sends a exit work
            items to all mtflush threads. We wait until the work queue is
            empty. However, as we did not hold the mutex, some other thread
            could also put work-items to work queue.

            Fix: Take mutex before adding exit work items to work queue and
            wait until all work-items are really processed. Release
            mutex after we have marked that multi-threaded flush is not
            anymore active.

            Show
            jplindst Jan Lindström added a comment - revno: 4010 committer: Jan Lindström <jplindst@mariadb.org> branch nick: 10.0-FusionIO-release timestamp: Fri 2015-01-09 09:29:59 +0200 message: MDEV-7424 : InnoDB: Assertion failure in thread 139901753345792 in file buf0mtflu.cc line 439 Analysis: At shutdown multi-threaded flush sends a exit work items to all mtflush threads. We wait until the work queue is empty. However, as we did not hold the mutex, some other thread could also put work-items to work queue. Fix: Take mutex before adding exit work items to work queue and wait until all work-items are really processed. Release mutex after we have marked that multi-threaded flush is not anymore active.
            Hide
            jplindst Jan Lindström added a comment -

            commit fe0112e2522750493eb3cb89ad3bf4985f311279
            Author: Jan Lindström <jan.lindstrom@skysql.com>
            Date: Wed Jan 14 19:24:37 2015 +0200

            MDEV-7424: InnoDB: Assertion failure in thread 139901753345792
            in file buf0mtflu.cc line 439

            Analysis: At shutdown multi-threaded flush sends a exit work
            items to all mtflush threads. We wait until the work queue is
            empty. However, as we did not hold the mutex, some other thread
            could also put work-items to work queue.

            Fix: Take mutex before adding exit work items to work queue and
            wait until all work-items are really processed. Release
            mutex after we have marked that multi-threaded flush is not
            anymore active.

            Fix test failure on innodb_bug12902967 caused by unnecessary
            info output on xtradb/buf/buf0mtflush.cc.

            Do not try to enable atomic writes if the file type
            is not OS_DATA_FILE. Atomic writes are unnecessary
            for log files. If we try to enable atomic writes
            to log writes that are stored to media supporting
            atomic writes we will end up problems later.

            Show
            jplindst Jan Lindström added a comment - commit fe0112e2522750493eb3cb89ad3bf4985f311279 Author: Jan Lindström <jan.lindstrom@skysql.com> Date: Wed Jan 14 19:24:37 2015 +0200 MDEV-7424 : InnoDB: Assertion failure in thread 139901753345792 in file buf0mtflu.cc line 439 Analysis: At shutdown multi-threaded flush sends a exit work items to all mtflush threads. We wait until the work queue is empty. However, as we did not hold the mutex, some other thread could also put work-items to work queue. Fix: Take mutex before adding exit work items to work queue and wait until all work-items are really processed. Release mutex after we have marked that multi-threaded flush is not anymore active. Fix test failure on innodb_bug12902967 caused by unnecessary info output on xtradb/buf/buf0mtflush.cc. Do not try to enable atomic writes if the file type is not OS_DATA_FILE. Atomic writes are unnecessary for log files. If we try to enable atomic writes to log writes that are stored to media supporting atomic writes we will end up problems later.

              People

              • Assignee:
                jplindst Jan Lindström
                Reporter:
                jplindst Jan Lindström
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: