1. 20 Jan, 2020 5 commits
  2. 19 Jan, 2020 6 commits
  3. 17 Jan, 2020 13 commits
    • Sergei Golubchik's avatar
    • Maheedhar PV's avatar
      Bug#30194841 INSERT ON DUPLICATE KEY UPDATE UPDATES THE WRONG ROW · 49b9ce15
      Maheedhar PV authored
      test case only
      49b9ce15
    • Marko Mäkelä's avatar
      InnoDB 5.6.47 and XtraDB 5.6.46-86.2 · 02af6278
      Marko Mäkelä authored
      The only change is a change of the version number.
      In MySQL 5.6.46, the copyright comments in a number of files were changed
      in mysql/mysql-server@f1a006ece7521cb02f9b961e6fad04d12ddfbab3
      but there was no functional change to InnoDB code.
      This was also reflected by XtraDB. We are not changing the copyright
      comments in MariaDB Server for now.
      
      Between MySQL 5.6.46 and 5.6.47, InnoDB was not changed at all.
      
      Actually, we had forgotten to update the InnoDB version number to
      5.6.46. With this change, we are updating InnoDB
      from 5.6.45 to 5.6.47 and XtraDB from 5.6.45-86.1 to 5.6.46-86.2.
      02af6278
    • Sergei Petrunia's avatar
      Fix a merge typo · d595a91b
      Sergei Petrunia authored
      d595a91b
    • Marko Mäkelä's avatar
      7b70cbd8
    • Nikša Skeledžija's avatar
      Bug #30499288 - GCC 9.2.1 REPORTS A NEW WARNING FOR OS_FILE_GET_PARENT_DIR · c25a0662
      Nikša Skeledžija authored
      - Fixed a warning visible in optimized build related to calling
      memcpy with length parameters larger than ptrdiff_t max.
      
      rb#23333 approved by Annamalai Gurusami <annamalai.gurusami@oracle.com>
      c25a0662
    • Marko Mäkelä's avatar
      MDEV-21513: Avoid some crashes in ALTER TABLE...IMPORT TABLESPACE · 08b0b2b6
      Marko Mäkelä authored
      IndexPurge::next(): Replace btr_pcur_move_to_next_user_rec()
      with some equivalent code that performs sanity checks without
      killing the server. Perform some additional sanity checks as well.
      
      This change is motivated by
      mysql/mysql-server@48de4d74f4d2f10cd01b129753c7dfa908cf36b5
      which unnecessarily introduces storage overhead to btr_pcur_t
      and uses a test case that injects a fault somewhere else,
      not in the code path that was modified.
      08b0b2b6
    • Marko Mäkelä's avatar
      MDEV-21512 InnoDB may hang due to SPATIAL INDEX · 457ce97e
      Marko Mäkelä authored
      MySQL 5.7.29 includes the following fix:
      Bug #30287668 INNODB: A LONG SEMAPHORE WAIT
      mysql/mysql-server@5cdbb22b51cf2b35dbdf5666a251ffbec2f84dec
      
      There is no test case. It seems that the problem could occur when
      a spatial index is large and peculiar enough so that multiple R-tree
      leaf pages will have the exactly same maximum bounding rectangle (MBR).
      
      The commit message suggests that the hang can occur when R-tree
      non-leaf pages are being merged, which should only be possible
      during transaction rollback or the purge of transaction history,
      when the R-tree index is at least 2 levels high and very many records
      are being deleted. The message says that a comparison result that two
      spatial index node pointer records are equal will cause an infinite loop
      in rtr_page_copy_rec_list_end_no_locks(). Hence, we must include the
      child page number in the comparison to be consistent with
      mysql/mysql-server@2e11fe0e152e34d73579e1a9ec19aedc3f6010f6.
      
      We fix this bug in a simpler way, involving fewer code changes.
      
      cmp_rec_rec(): Renamed from cmp_rec_rec_with_match().
      Assert that rec2 always resides in an index page.
      Treat non-leaf spatial index pages specially.
      457ce97e
    • Marko Mäkelä's avatar
      MDEV-21511: Remove unnecessary code · c3695b40
      Marko Mäkelä authored
      Now that we will be invoking dtuple_get_n_ext() instead of
      letting btr_push_update_extern_fields() update an already
      calculated value, it is unnecessary to calculate the n_ext
      upfront.
      
      row_rec_to_index_entry(), row_rec_to_index_entry_low():
      Remove the output parameter n_ext.
      c3695b40
    • Marko Mäkelä's avatar
      MDEV-21511 Wrong estimate of affected BLOB columns in update · 5838b527
      Marko Mäkelä authored
      During update, rollback, or MVCC read, we may miscalculate
      the number of off-page columns, and thus the size of the
      clustered index record. The function btr_push_update_extern_fields()
      is mostly redundant, because the off-page columns would also be
      moved by row_upd_index_replace_new_col_val(), which is invoked
      via row_upd_index_replace_new_col_vals().
      
      btr_push_update_extern_fields(): Remove.
      
      This is based on
      mysql/mysql-server@1fa475b85d24de4b9ce2958c0eed738c221fc82c
      which refines a fix for a recovery bug fix
      mysql/mysql-server@ce0a1e85e24e48b8171f767b44330da635a6ea0a
      in MySQL 5.7.5.
      
      No test case was provided by Oracle.
      Some of the changed code is being covered by the existing test
      innodb.blob-crash.
      5838b527
    • Marko Mäkelä's avatar
      MDEV-21509 Possible hang during purge of history, or rollback · 3e38d155
      Marko Mäkelä authored
      WL#6326 in MariaDB 10.2.2 introduced a potential hang on purge or rollback
      when an index tree is being shrunk by multiple levels.
      
      This fix is based on
      mysql/mysql-server@f2c58526300c0d84837effa26d37cbd5d2694967
      with the main difference that our version of the test case uses
      DEBUG_SYNC instrumentation on ROLLBACK, not on purge.
      
      btr_cur_will_modify_tree(): Simplify the check further.
      This is the actual bug fix.
      
      row_undo_mod_remove_clust_low(), row_undo_mod_clust(): Add DEBUG_SYNC
      instrumentation for the test case.
      3e38d155
    • Marko Mäkelä's avatar
      MDEV-13626: Add the WL#6326 tests · 9cae7bdc
      Marko Mäkelä authored
      9cae7bdc
    • Jan Lindström's avatar
      MDEV-17062 : Test failure on galera.MW-336 · c4195305
      Jan Lindström authored
      Add mutex protection while we calculate required slave
      thread change and create them. Add error handling.
      c4195305
  4. 16 Jan, 2020 7 commits
  5. 15 Jan, 2020 6 commits
  6. 14 Jan, 2020 2 commits
    • Sergei Petrunia's avatar
      MDEV-21341: Fix UBSAN failures: Issue Six · 5e5ae51b
      Sergei Petrunia authored
      (Variant #2 of the patch, which keeps the sp_head object inside the
      MEM_ROOT that sp_head object owns)
      (10.3 requires extra work due to sp_package, will commit a separate
      patch for it)
      
      sp_head::operator new() and operator delete() were dereferencing sp_head*
      pointers to memory that didn't hold a valid sp_head object (it was
      not created/already destroyed).
      This caused UBSan to crash when looking up type information.
      
      Fixed by providing static sp_head::create() and sp_head::destroy() methods.
      5e5ae51b
    • Daniele Sciascia's avatar
      MDEV-19803 Long semaphore wait error on galera.MW-388 · 7d313214
      Daniele Sciascia authored
      The long semaphore wait appeared to be the caused by the following
      pattern in the MTR test:
      
      ```
      SET DEBUG_SYNC = "now SIGNAL wsrep_after_certification_continue";
      SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb;
      ```
      
      Raising two signals, one right after another, caused one signal to
      overwrite the other, before the signal was consumed by the thread.
      This caused one thread to be stuck until the debug sync point would
      timeout.
      7d313214
  7. 13 Jan, 2020 1 commit