1. 27 Mar, 2019 1 commit
    • Marko Mäkelä's avatar
      MDEV-18417/MDEV-18656/MDEV-18417: Work around compiler ASAN bug · 828cc2ba
      Marko Mäkelä authored
      In a Ubuntu Xenial build environment, the compiler identified as
      g++-5.real (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
      seems to be emitting incorrect code for the compilation unit
      trx0rec.cc, triggering a bogus-looking AddressSanitizer report
      of an invalid read of something in the function trx_undo_rec_get_pars().
      This is potentially affecting any larger tests where the InnoDB
      purge subsystem is being exercised.
      
      When the optimization level of trx0rec.cc is limited to -O1, no
      bogus failure is being reported. With -O2 or -O3, a lot of things
      seemed to be inlined in the function, and the disassembly of the
      generated code did not make sense to me.
      828cc2ba
  2. 26 Mar, 2019 1 commit
  3. 25 Mar, 2019 2 commits
  4. 24 Mar, 2019 1 commit
  5. 22 Mar, 2019 2 commits
  6. 21 Mar, 2019 5 commits
  7. 15 Mar, 2019 1 commit
    • Igor Babaev's avatar
      MDEV-18896 Crash in convert_join_subqueries_to_semijoins · 0dd12b4f
      Igor Babaev authored
      If an IN-subquery is used in a table-less select the current code
      should never consider it as candidate for semi-join optimizations.
      Yet the function check_and_do_in_subquery_rewrites() improperly
      checked the property "to be a table-less select". As a result
      such select in IN subquery was used in INSERT .. SELECT then
      the IN subquery by mistake was registered as a semi-join subquery
      and convert_subq_to_sj() was called for it. However the code of
      this function does not assume that the parent select of the subquery
      could be a table-less select.
      0dd12b4f
  8. 11 Mar, 2019 1 commit
    • Sergey Vojtovich's avatar
      MDEV-17595 - ALTER TABLE ADD FOREIGN KEY crash · 149b7547
      Sergey Vojtovich authored
      ALTER TABLE ... ADD FOREIGN KEY may trigger assertion failure when
      it has LOCK=EXCLUSIVE clause or concurrent FLUSH TABLES is being
      executed.
      
      In both cases being altered table is marked as flushed, which forces
      subsequent attempt to open parent table to re-open. Which in turn is
      not allowed while transaction is running.
      
      Rather than opening parent table, just take appropriate MDL lock.
      
      Also removed table_already_fk_prelocked() check: MDL itself has much
      better methods to handle duplicate locks. E.g. the former won't acquire
      MDL_SHARED_NO_WRITE if it already has MDL_SHARED_READ.
      149b7547
  9. 07 Mar, 2019 2 commits
    • Marko Mäkelä's avatar
      Merge 5.5 into 10.0 · 0a0eed80
      Marko Mäkelä authored
      0a0eed80
    • Marko Mäkelä's avatar
      MDEV-18272 InnoDB fails to rollback after exceeding FOREIGN KEY recursion depth · 8024f8c6
      Marko Mäkelä authored
      row_mysql_handle_errors(): Correct the wrong error handling for
      the code DB_FOREIGN_EXCEED_MAX_CASCADE that was introduced in
      
      https://github.com/mysql/mysql-server/commit/c0923d396aef46799883390e9dcf7bbf173e4a03
      
          commit 35f5429e
          Author: Jimmy Yang <jimmy.yang@oracle.com>
          Date:   Wed Oct 6 06:55:34 2010 -0700
      
              Manual port Bug #Bug #54582 "stack overflow when opening many tables
              linked with foreign keys at once" from mysql-5.1-security to
              mysql-5.5-security again.
      
              rb://391 approved by Heikki
      
      No known test case exists for repeating the bug before MariaDB 10.2.
      The scenario should be that DB_FOREIGN_EXCEED_MAX_CASCADE is returned,
      then InnoDB wrongly skips the rollback to the start of the current
      row operation, and finally the SQL layer commits the transaction.
      Normally the SQL layer would roll back either the entire transaction or
      to the start of the statement. In the faulty scenario, InnoDB would
      leave the transaction in an inconsistent state, and the SQL layer could
      commit the transaction.
      8024f8c6
  10. 28 Feb, 2019 4 commits
  11. 07 Feb, 2019 1 commit
  12. 31 Jan, 2019 1 commit
  13. 30 Jan, 2019 2 commits
  14. 29 Jan, 2019 7 commits
  15. 28 Jan, 2019 9 commits