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

table id overflow causes replication out of sync

Details

    • Bug
    • Status: Closed (View Workflow)
    • Minor
    • Resolution: Duplicate
    • 10.1.22
    • 10.1.38
    • Replication
    • None
    • debian 8.2
      MariaDB 10.1.22

    Description

      When binglog_format is "row", DML statements would have a Table_map_event in binlog; each Table_map_event would have a table_id; the table_id is represented as ulong in binlog, while read into TABLE_LIST.table_id in slave, which is of type uint, so if table_id is larger than 2^32, it would cause type overflow, and those events in relay log would be silently skipped, hence causing data inconsistency between master and slave.

      Attachments

        Issue Links

          Activity

            ruochen wy created issue -
            elenst Elena Stepanova made changes -
            Field Original Value New Value
            Component/s Replication [ 10100 ]
            Component/s Server [ 13907 ]
            Fix Version/s 10.1 [ 16100 ]
            Assignee Andrei Elkin [ elkin ]
            Elkin Andrei Elkin made changes -
            Priority Major [ 3 ] Minor [ 4 ]
            Elkin Andrei Elkin added a comment - - edited

            This seems impractical to hit as the id 's life time is server life time.
            However a single-liner fix to wrap around at overflow should close it.

            Elkin Andrei Elkin added a comment - - edited This seems impractical to hit as the id 's life time is server life time. However a single-liner fix to wrap around at overflow should close it.
            ruochen wy made changes -
            Description When binglog_format is "row", DML statements would have a Table_map_event in binlog; each Table_map_event would have a table_id; the table_id is represented as ulong in binlog, while read into TABLE_LIST.table_id in slave, which is of type uint, so if table_id is larger than 17179869184, it would cause type overflow, and those events in relay log would be silently skipped, hence causing data inconsistency between master and slave.

            FYI:https://bugs.mysql.com/bug.php?id=88754
            When binglog_format is "row", DML statements would have a Table_map_event in binlog; each Table_map_event would have a table_id; the table_id is represented as ulong in binlog, while read into TABLE_LIST.table_id in slave, which is of type uint, so if table_id is larger than 2^32, it would cause type overflow, and those events in relay log would be silently skipped, hence causing data inconsistency between master and slave.

            FYI:https://bugs.mysql.com/bug.php?id=88754
            Elkin Andrei Elkin added a comment -
            Elkin Andrei Elkin added a comment - See MDEV-17803 .
            Elkin Andrei Elkin made changes -
            Fix Version/s 10.1.38 [ 23209 ]
            Fix Version/s 10.1 [ 16100 ]
            Resolution Duplicate [ 3 ]
            Status Open [ 1 ] Closed [ 6 ]
            Elkin Andrei Elkin made changes -
            ruochen wy made changes -
            Description When binglog_format is "row", DML statements would have a Table_map_event in binlog; each Table_map_event would have a table_id; the table_id is represented as ulong in binlog, while read into TABLE_LIST.table_id in slave, which is of type uint, so if table_id is larger than 2^32, it would cause type overflow, and those events in relay log would be silently skipped, hence causing data inconsistency between master and slave.

            FYI:https://bugs.mysql.com/bug.php?id=88754
            When binglog_format is "row", DML statements would have a Table_map_event in binlog; each Table_map_event would have a table_id; the table_id is represented as ulong in binlog, while read into TABLE_LIST.table_id in slave, which is of type uint, so if table_id is larger than 2^32, it would cause type overflow, and those events in relay log would be silently skipped, hence causing data inconsistency between master and slave.
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 91582 ] MariaDB v4 [ 155470 ]

            People

              Elkin Andrei Elkin
              ruochen wy
              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.