1. 21 Jan, 2020 3 commits
  2. 20 Jan, 2020 9 commits
  3. 19 Jan, 2020 2 commits
  4. 18 Jan, 2020 3 commits
  5. 17 Jan, 2020 13 commits
    • Sergei Golubchik's avatar
      MDEV-20205 mysql_install_db shouldn't execute chown · 51a95712
      Sergei Golubchik authored
      Make chown error non-fatal. Just print a warning.
      51a95712
    • Sergei Golubchik's avatar
      rpm/deb and auth_pam_tool_dir/auth_pam_tool · 9d18b624
      Sergei Golubchik authored
      don't let mysql_install_db set SUID bit for auth_pam_tool in rpm/deb
      packages - instead package files with correct permissions and
      only fix the ownership of auth_pam_tool_dir (which can only be done
      after mysql user is created, so in post-install).
      
      keep old mysql_install_db behavior for bintars
      9d18b624
    • 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
    • Jan Lindström's avatar
      7e378a8d
  6. 16 Jan, 2020 7 commits
  7. 15 Jan, 2020 3 commits
    • Igor Babaev's avatar
      MDEV-21184 Assertion `used_tables_cache == 0' failed in Item_func::fix_fields · 1c97cd33
      Igor Babaev authored
                 with condition_pushdown_from_having
      
      This bug could manifest itself for queries with GROUP BY and HAVING clauses
      when the HAVING clause was a conjunctive condition that depended
      exclusively on grouping fields and at least one conjunct contained an
      equality of the form fld=sq where fld is a grouping field and sq is a
      constant subquery.
      In this case the optimizer tries to perform a pushdown of the HAVING
      condition into WHERE. To construct the pushable condition the optimizer
      first transforms all multiple equalities in HAVING into simple equalities.
      This has to be done for a proper processing of the pushed conditions
      in WHERE. The multiple equalities at all AND/OR levels must be converted
      to simple equalities because any multiple equality may refer to a multiple
      equality at the upper level.
      Before this patch the conversion was performed like this:
        multiple_equality(x,f1,...,fn) => x=f1 and ... and x=fn.
      When an equality item for x=fi was constructed both the items for x and fi
      were cloned. If x happened to be a constant subquery that could not be
      cloned the conversion failed. If the conversions of multiple equalities
      previously performed had succeeded then the whole condition became in an
      inconsistent state that could cause different failures.
      The solution provided by the patch is:
      1. to use a different conversion rule if x is a constant
        multiple_equality(x,f1,...,fn) => f1=x and f2=f1 and ... and fn=f1
      2. not to clone x if it's a constant.
      Such conversions cannot fail and besides the result of the conversion
      preserves the equivalence of f1,...,fn that can be used for other
      optimizations.
      This patch also made sure that expensive predicates are not pushed from
      HAVING to WHERE.
      1c97cd33
    • Alice Sherepa's avatar
    • Alice Sherepa's avatar