1. 06 Jul, 2018 2 commits
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-15855 Deadlock between purge thread and DDL statement · 8b0d4cff
      Thirunarayanan Balathandayuthapani authored
      Problem:
      ========
      Truncate operation holds MDL on the table (t1) and tries to
      acquire InnoDB dict_operation_lock. Purge holds dict_operation_lock
      and tries to acquire MDL on the table (t1) to evaluate virtual
      column expressions for indexed virtual columns.
      It leads to deadlock of purge and truncate table (DDL).
      
      Solution:
      =========
      If purge tries to acquire MDL on the table then it should do the following:
      
      i) Purge should release all innodb latches (including dict_operation_lock)
      before acquiring metadata lock on the table.
      
      ii) After acquiring metadata lock on the table, it should check whether the
      table was dropped or renamed. If the table is dropped then purge should
      ignore the undo log record. If the table is renamed then it should
      release the old MDL and acquire MDL on the new name.
      
      iii) Once purge acquires MDL, it should use the SQL table handle for all
      the remaining virtual index for the purge record.
      
      purge_node_t: Introduce new virtual column information to know whether
      the MDL was acquired successfully.
      
      This is joint work with Marko Mäkelä.
      8b0d4cff
    • Marko Mäkelä's avatar
      MDEV-14188 mariabackup.incremental_encrypted wrong result · e3207b6c
      Marko Mäkelä authored
      Add an explicit redo log flush. In this test
      innodb_flush_log_at_trx_commit was 2 by default.
      It is also possible that this failure occurs because of MDEV-15740.
      e3207b6c
  2. 05 Jul, 2018 6 commits
  3. 02 Jul, 2018 1 commit
  4. 01 Jul, 2018 2 commits
    • Anel Husakovic's avatar
      MDEV-16630: Ambiguous error message when check constraint matches table name · 8639e288
      Anel Husakovic authored
      One can create table with the same name for `field` and `table` `check` constraint.
      For example:
      `create table t(a int check(a>0), constraint a check(a>10));`
      But when inserting new rows same error is always raised.
      For example with
      ```insert into t values (-1);```
      and
      ```insert into t values (10);```
      same error `ER_CONSTRAINT_FAILED` is obtained and it is not clear which constraint is violated.
      This patch solve this error so that in case if field constraint is violated the first parameter
      in the error message is `table.field_name` and if table constraint is violated the first parameter
      in error message is `constraint_name`.
      8639e288
    • Vladislav Vaintroub's avatar
      amend fix for MDEV-16596 - do not use CREATE_NEW flag when reopening redo log file. · b71c9ae0
      Vladislav Vaintroub authored
      use OPEN_ALWAYS instead, since we know file already exist.
      b71c9ae0
  5. 30 Jun, 2018 1 commit
    • Vladislav Vaintroub's avatar
      MDEV-16596 : Windows - redo log does not work on native 4K sector disks. · c612a1e7
      Vladislav Vaintroub authored
      Disks with native 4K sectors need 4K alignment and size for  unbuffered IO
      (i.e for files opened with FILE_FLAG_NO_BUFFERING)
      
      Innodb opens redo log with FILE_FLAG_NO_BUFFERING, however it always does
      512byte IOs. Thus, the IO on 4K native sectors will fail, rendering
      Innodb non-functional.
      
      The fix is to check whether OS_FILE_LOG_BLOCK_SIZE is multiple of logical
      sector size, and if it is not, reopen the redo log without
      FILE_FLAG_NO_BUFFERING flag.
      c612a1e7
  6. 28 Jun, 2018 11 commits
  7. 27 Jun, 2018 3 commits
  8. 26 Jun, 2018 9 commits
  9. 25 Jun, 2018 5 commits