1. 02 Jun, 2020 1 commit
    • Marko Mäkelä's avatar
      MDEV-22770 trx_undo_report_rename() fails to release page latches · 804761a8
      Marko Mäkelä authored
      commit f74023b9 (MDEV-15090)
      inadvertently removed a mtr_t::commit() call from
      trx_undo_report_rename(), causing an InnoDB hang if
      we failed to log a RENAME operation.
      
      It is unclear whether this condition is possible in practice.
      The test case involved SET GLOBAL innodb_trx_rseg_n_slots_debug=1
      and a failed CREATE TABLE...SELECT, whose error handling would
      internally invoke RENAME in InnoDB.
      804761a8
  2. 01 Jun, 2020 1 commit
  3. 30 May, 2020 1 commit
  4. 29 May, 2020 7 commits
  5. 28 May, 2020 4 commits
  6. 27 May, 2020 18 commits
  7. 26 May, 2020 8 commits
    • Eugene Kosov's avatar
      intrusive::list fixes · 18d8f06f
      Eugene Kosov authored
      namespace intrusive: removed
      
      split class into two: ilist<T> and sized_ilist<T> which has a size field.
      
      ilist<T> no more NULLify pointers to bring a slignly better performance.
      As a consequence, fil_space_t::is_in_unflushed_spaces and
      fil_space_t::is_in_rotation_list boolean members are needed now.
      18d8f06f
    • Monty's avatar
      Fixed crash in aria recovery when using bulk insert · 403dacf6
      Monty authored
      MDEV-20578 Got error 126 when executing undo undo_key_delete
      upon Aria crash recovery
      
      The crash happens in this scenario:
      - Table with unique keys and non unique keys
      - Batch insert (LOAD DATA or INSERT ... SELECT) with REPLACE
      - Some insert succeeds followed by duplicate key error
      
      In the above scenario the table gets corrupted.
      
      The bug was that we don't generate any undo entry for the
      failed insert as the whole insert can be ignored by undo.
      The code did however not take into account that when bulk
      insert is used, we would write cached keys to the file on
      failure and undo would wrongly ignore these.
      
      Fixed by moving the writing of the cache keys after we write
      the aborted-insert event to the log.
      403dacf6
    • Andrei Elkin's avatar
      MDEV-15152 Optimistic parallel slave doesnt cope well with START SLAVE UNTIL · 0c1f97b3
      Andrei Elkin authored
      The immediate bug was caused by a failure to recognize a correct
      position to stop the slave applier run in optimistic parallel mode.
      There were the following set of issues that the analysis unveil.
      1 incorrect estimate for the event binlog position passed to
        is_until_satisfied
      2 wait for workers to complete by the driver thread did not account non-group events
        that could be left unprocessed and thus to mix up the last executed
        binlog group's file and position:
        the file remained old and the position related to the new rotated file
      3 incorrect 'slave reached file:pos' by the parallel slave report in the error log
      4 relay log UNTIL missed out the parallel slave branch in
        is_until_satisfied.
      
      The patch addresses all of them to simplify logics of log change
      notification in either the master and relay-log until case.
      P.1 is addressed with passing the event into is_until_satisfied()
      for proper analisis by the function.
      P.2 is fixed by changes in handle_queued_pos_update().
      P.4 required removing relay-log change notification by workers.
      Instead the driver thread updates the notion of the current relay-log
      fully itself with aid of introduced
      bool Relay_log_info::until_relay_log_names_defer.
      
      An extra print out of the requested until file:pos is arranged
      with --log-warning=3.
      0c1f97b3
    • Andrei Elkin's avatar
    • Andrei Elkin's avatar
      MDEV-15152 Optimistic parallel slave doesnt cope well with START SLAVE UNTIL · dbe447a7
      Andrei Elkin authored
      The immediate bug was caused by a failure to recognize a correct
      position to stop the slave applier run in optimistic parallel mode.
      There were the following set of issues that the analysis unveil.
      1 incorrect estimate for the event binlog position passed to
        is_until_satisfied
      2 wait for workers to complete by the driver thread did not account non-group events
        that could be left unprocessed and thus to mix up the last executed
        binlog group's file and position:
        the file remained old and the position related to the new rotated file
      3 incorrect 'slave reached file:pos' by the parallel slave report in the error log
      4 relay log UNTIL missed out the parallel slave branch in
        is_until_satisfied.
      
      The patch addresses all of them to simplify logics of log change
      notification in either the master and relay-log until case.
      P.1 is addressed with passing the event into is_until_satisfied()
      for proper analisis by the function.
      P.2 is fixed by changes in handle_queued_pos_update().
      P.4 required removing relay-log change notification by workers.
      Instead the driver thread updates the notion of the current relay-log
      fully itself with aid of introduced
      bool Relay_log_info::until_relay_log_names_defer.
      
      An extra print out of the requested until file:pos is arranged
      with --log-warning=3.
      dbe447a7
    • Aleksey Midenkov's avatar
      MDEV-20015 Assertion `!in_use->is_error()' failed in TABLE::update_virtual_field · f1f14c20
      Aleksey Midenkov authored
      update_virtual_field() is called as part of index rebuild in
      ha_myisam::repair() (MDEV-5800) which is done on bulk INSERT finish.
      
      Assertion in update_virtual_field() was put as part of MDEV-16222
      because update_virtual_field() returns in_use->is_error(). The idea:
      wrongly mixed semantics of error status before update_virtual_field()
      and the status returned by update_virtual_field(). The former can
      falsely influence the latter.
      f1f14c20
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 6a26e0c7
      Marko Mäkelä authored
      6a26e0c7
    • Marko Mäkelä's avatar
      Merge 5.5 into 10.1 · adbf85fc
      Marko Mäkelä authored
      adbf85fc