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

Page contains nonzero PAGE_MAX_TRX_ID

Details

    Description

      The field PAGE_MAX_TRX_ID only matters in secondary index leaf pages. It was expected to be 0 on all other pages until the field is put into some other use.
      (MDEV-6076 repurposed the field in clustered index root pages for a persistent AUTO_INCREMENT value. MDEV-11369 and MDEV-11424 may repurpose it in further clustered index pages.)

      When running innodb.innodb-wl5522-debug or innodb_zip.wl5522_debug_zip with innodb_page_size=4k, an assertion in btr_page_reorganize_low() is failing:

      	/* PAGE_MAX_TRX_ID must be zero on non-leaf pages other than
      	clustered index root pages. */
      	ut_ad(recovery
      	      || page_get_max_trx_id(page) == 0
      	      || (dict_index_is_sec_or_ibuf(index)
      		  ? page_is_leaf(temp_page)
      		  : page_is_root(temp_page)));
      

      An easy fix would be to relax the assertion:

      	/* PAGE_MAX_TRX_ID must be zero on non-leaf pages other than
      	clustered index root pages. */
      	ut_ad(recovery
      	      || page_get_max_trx_id(page) == 0
      	      || dict_index_is_sec_or_ibuf(index)
      	      || page_is_root(temp_page));
      

      But I would like to study why this happens. Maybe we are not clearing PAGE_MAX_TRX_ID when splitting a secondary index leaf page.

      Attachments

        Issue Links

          Activity

            marko Marko Mäkelä created issue -
            marko Marko Mäkelä made changes -
            Field Original Value New Value
            marko Marko Mäkelä made changes -
            Summary Secondary index node pointer page contains nonzero PAGE_MAX_TRX_ID Page contains nonzero PAGE_MAX_TRX_ID
            marko Marko Mäkelä made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            marko Marko Mäkelä made changes -
            Status In Progress [ 3 ] In Review [ 10002 ]
            marko Marko Mäkelä made changes -
            Assignee Marko Mäkelä [ marko ] Jan Lindström [ jplindst ]
            jplindst Jan Lindström (Inactive) made changes -
            Assignee Jan Lindström [ jplindst ] Marko Mäkelä [ marko ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            marko Marko Mäkelä made changes -
            issue.field.resolutiondate 2017-04-19 05:20:58.0 2017-04-19 05:20:58.433
            marko Marko Mäkelä made changes -
            Fix Version/s 10.2.6 [ 22527 ]
            Fix Version/s 10.2 [ 14601 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            marko Marko Mäkelä made changes -
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 79743 ] MariaDB v4 [ 151746 ]
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -

            People

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