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

assert triggered by ./mtr --ps-protocol rpl_mdev382

    Details

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

      Description

      rpl_mdev382 tests, besides other things, binlogging of implicitly emptied MEMORY tables.

      The assert that fires is here:

      3275 bool Prepared_statement::prepare(const char *packet, uint packet_len)
      3276 {
      ...
      3361     error= check_prepared_statement(this);
      ...
      3372   /* No need to commit statement transaction, it's not started. */
      3373   DBUG_ASSERT(thd->transaction.stmt.is_empty());
      ...
      

      Indeed, the "statement transaction" is not supposed to be started. But the check_prepared_statement call above opens all tables, and the "implicitly emptied" MEMORY table too, which triggers binlog write, which starts the transaction.

      Besides an assert it might be wrong on other layers too. What if the transaction is rolled back? What if the statement fails and is rolled back? DELETE must still be in binlog, strictly speaking it's not part of the transaction.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              serg Sergei Golubchik added a comment -

              pushed

              Show
              serg Sergei Golubchik added a comment - pushed
              Hide
              knielsen Kristian Nielsen added a comment -

              Jira is stupid, or I am: I didn't see how to log time without reopening issue.

              Show
              knielsen Kristian Nielsen added a comment - Jira is stupid, or I am: I didn't see how to log time without reopening issue.

                People

                • Assignee:
                  knielsen Kristian Nielsen
                  Reporter:
                  serg Sergei Golubchik
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Time Tracking

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Remaining Estimate - 0 minutes
                    0m
                    Logged:
                    Time Spent - 3 hours, 30 minutes
                    3h 30m