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

Test rpl.rpl_gtid_startpos doesn't work with binlog checksums

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 10.0.2
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      I'm using 10.0.2 tarball, running simple "cmake ." and "make". After that simple "./mtr rpl.rpl_gtid_startpos" works, but "./mtr rpl.rpl_gtid_startpos -mysqld=-binlog-checksum=CRC32" times out after 900 seconds.
      Quick look at the test doesn't reveal a hard dependency on particular binlog positions or something. So it could be that the actual problem is in mysql code.

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            elenst Elena Stepanova added a comment -

            What are you running it on?
            (isn't happening for me on Ubuntu 12.04 64-bit, so I am wondering if it's a race condition or system-related)

            Show
            elenst Elena Stepanova added a comment - What are you running it on? (isn't happening for me on Ubuntu 12.04 64-bit, so I am wondering if it's a race condition or system-related)
            Hide
            pivanof Pavel Ivanov added a comment -

            That's interesting. I have Ubuntu 12.04 64-bit too. Compilation was done with "gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)". I wonder what's different then.

            Show
            pivanof Pavel Ivanov added a comment - That's interesting. I have Ubuntu 12.04 64-bit too. Compilation was done with "gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)". I wonder what's different then.
            Hide
            knielsen Kristian Nielsen added a comment -

            Thanks for the report!

            The problem was that the function Gtid_log_event::peek_is_commit_rollback() did not
            correctly consider the extra 4 bytes of checksum in the event length, so it might miss a
            COMMIT event (for non-transactional updates) and wrongly skip some event(s).

            Currently we are not testing -mysqld=-binlog-checksum=CRC32, which is bad.
            Especially since the MySQL 5.6 checksum design is quite bad and sure to cause
            problems like this to be introduced again in the future.

            I'll make sure that the test suite passes with binlog checksums and try to find a
            Buildbot host to run tests with checksums enabled.

            Show
            knielsen Kristian Nielsen added a comment - Thanks for the report! The problem was that the function Gtid_log_event::peek_is_commit_rollback() did not correctly consider the extra 4 bytes of checksum in the event length, so it might miss a COMMIT event (for non-transactional updates) and wrongly skip some event(s). Currently we are not testing - mysqld= -binlog-checksum=CRC32, which is bad. Especially since the MySQL 5.6 checksum design is quite bad and sure to cause problems like this to be introduced again in the future. I'll make sure that the test suite passes with binlog checksums and try to find a Buildbot host to run tests with checksums enabled.
            Hide
            knielsen Kristian Nielsen added a comment -

            Pushed to 10.0-base.

            revid: knielsen@knielsen-hq.org-20130429085748-xrrdwe59e9nzzdr0

            Show
            knielsen Kristian Nielsen added a comment - Pushed to 10.0-base. revid: knielsen@knielsen-hq.org-20130429085748-xrrdwe59e9nzzdr0

              People

              • Assignee:
                knielsen Kristian Nielsen
                Reporter:
                pivanof Pavel Ivanov
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: