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

Crash in flst_read_addr on corrupted data

    XMLWordPrintable

Details

    Description

      According to MDEV-33315, InnoDB would crash somewhere inside fseg_free_page() while attempting to free a BLOB page. The data directory is obviously corrupted, because it was a combination of two partial copies that had been made at different times. But, in the sentiment of MDEV-13542, the database should not crash.

      The crash occurs due to an assertion failure in flst_read_addr(). These assertion expressions had better be moved to conditions within the callers of the following accessor functions:

      grep -n '\<flst_get_\(first\|last\|next\|prev\)' storage/innobase/*/*c
      

      There are 27 occurrences, so it is not a huge effort to fix this. Many callers, such as fseg_get_first_extent(), may already return a corruption status to their callers.

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              marko Marko Mäkelä
              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.