1. 23 Jan, 2019 13 commits
    • Marko Mäkelä's avatar
      3dac4e9f
    • Marko Mäkelä's avatar
      Update the InnoDB version number · d283f80e
      Marko Mäkelä authored
      d283f80e
    • Marko Mäkelä's avatar
      Bug #22990029: Add a test case · 64678ca5
      Marko Mäkelä authored
      64678ca5
    • Aditya A's avatar
      Bug #22990029 GCOLS: INCORRECT BEHAVIOR AFTER DATA INSERTED WITH IGNORE KEYWORD · aa8a31da
      Aditya A authored
      PROBLEM
      -------
      
      1. We are inserting a base column entry which causes an invalid value
         by the function provided to generate virtual column,but we go ahead
         and insert this due to ignore keyword.
      2. We then delete this record, making this record delete marked in innodb.
         If we try to insert another record with the same pk as the deleted
         record and if the rec is not purged ,then we try to undelete mark this
         record and try to build a update vector with previous and updated value
         and while calculating the value of virtual column we get error from
         server that we cannot calculate this from base column.
         Innodb assumes that innobase_get_computed_value() Should always return
         a valid value for the base column present in the row. The failure of
         this call was not handled ,so we were crashing.
      
      FIX
      aa8a31da
    • Marko Mäkelä's avatar
      Add a test for Bug #28470805 DELETE CASCADE CRASHES ... ON RESTART · e32305e5
      Marko Mäkelä authored
      Thanks to commit 2614a0ab
      before MDEV-5800, no version of MariaDB is affected by this bug
      that was fixed in MySQL 5.7.25.
      e32305e5
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 9a7281a7
      Marko Mäkelä authored
      9a7281a7
    • Marko Mäkelä's avatar
      d06ebd93
    • Marko Mäkelä's avatar
      Remove unnecessary type casts · 2565c02c
      Marko Mäkelä authored
      2565c02c
    • Marko Mäkelä's avatar
      Merge 10.0 into 10.1 · 3b6d2efc
      Marko Mäkelä authored
      3b6d2efc
    • Vladislav Vaintroub's avatar
      MDEV-18356 · 5c159c90
      Vladislav Vaintroub authored
      Rename it because it caused parser warning whenever --backup was used.
      5c159c90
    • Marko Mäkelä's avatar
      MDEV-17933 slow server status - dict_sys_get_size() · 52d13036
      Marko Mäkelä authored
      dict_sys_get_size(): Replace the time-consuming loop with
      a crude estimate that can be computed without holding any mutex.
      
      Even before dict_sys->size was removed in MDEV-13325,
      not all memory allocations by the InnoDB data dictionary cache
      were being accounted for. One example is foreign key constraints.
      Another example is virtual column metadata, starting with 10.2.
      52d13036
    • Sergei Golubchik's avatar
      Bug#28867993: POSSIBLE ISSUE WITH MYSQL SERVER RESTART · 2a0f1d61
      Sergei Golubchik authored
      on startup innodb is checking whether files "ib_logfileN"
      (for N from 1 to 100) exist, and whether they're readable.
      A non-existent file aborted the scan.
      A directory instead of a file made InnoDB to fail.
      
      Now it treats "directory exists" as "file doesn't exist".
      2a0f1d61
    • Marko Mäkelä's avatar
      MDEV-18349 InnoDB file size changes are not safe when file system crashes · 31d592ba
      Marko Mäkelä authored
      When InnoDB is invoking posix_fallocate() to extend data files, it
      was missing a call to fsync() to update the file system metadata.
      If file system recovery is needed, the file size could be incorrect.
      
      When the setting innodb_flush_method=O_DIRECT_NO_FSYNC
      that was introduced in MariaDB 10.0.11 (and MySQL 5.6) is enabled,
      InnoDB would wrongly skip fsync() after extending files.
      
      Furthermore, the merge commit d8b45b0c
      inadvertently removed XtraDB error checking for posix_fallocate()
      which this fix is restoring.
      
      fil_flush(): Add the parameter bool metadata=false to request that
      fil_buffering_disabled() be ignored.
      
      fil_extend_space_to_desired_size(): Invoke fil_flush() with the
      extra parameter. After successful posix_fallocate(), invoke
      os_file_flush(). Note: The bookkeeping for fil_flush() would not be
      updated the posix_fallocate() code path, so the "redundant"
      fil_flush() should be a no-op.
      31d592ba
  2. 22 Jan, 2019 1 commit
    • Sergey Vojtovich's avatar
      MDEV-12747 - main.mysqld_option_err fails in buildbot with timeout · 9f4d4f40
      Sergey Vojtovich authored
      thd_destructor_proxy() may miss abort signal if innobase_end() is running
      concurrently, which causes server hang in pthread_join() on shutdown.
      
      The problem was that aborting wasn't protected by mutex:
      proxy thr: while (!myvar->abort)
      end thr: running->abort = 1;
      end thr: mysql_cond_broadcast(...);
      proxy thr: mysql_cond_wait(...); // nobody to awake it
      end thr: pthread_join(...); // waits for proxy thr
      
      Also made main.mysqld_option_err reentrant.
      9f4d4f40
  3. 21 Jan, 2019 3 commits
  4. 18 Jan, 2019 3 commits
    • Varun Gupta's avatar
      MDEV-14440: Assertion `inited==RND' failed in handler::ha_rnd_end · 2061e00c
      Varun Gupta authored
      In the function QUICK_RANGE_SELECT::init_ror_merged_scan we create a seperate handler if the handler in
      head->file cannot be reused. The flag free_file tells us if we have a seperate handler or not.
      There are cases where you might create a handler and then there might be a failure(running ALTER)
      and then we have to revert the handler back to the original one. The code does that
      but it does not reset the flag 'free_file' in this case.
      Also backported f2c41807.
      2061e00c
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 37ffdb44
      Marko Mäkelä authored
      37ffdb44
    • Marko Mäkelä's avatar
      MDEV-18237 InnoDB: Unable to drop FTS index aux table and further errors (possibly bogus) · 1d72db45
      Marko Mäkelä authored
      row_drop_table_for_mysql(): Fix a regression introduced in MDEV-16515.
      Similar to the follow-up fixes MDEV-16647 and MDEV-17470, we must make
      the internal tables of FULLTEXT INDEX immune to kills, to avoid noise
      and resource leakage on DROP TABLE or ALTER TABLE. (Orphan internal tables
      would be dropped at the next InnoDB startup only.)
      1d72db45
  5. 17 Jan, 2019 6 commits
  6. 16 Jan, 2019 6 commits
  7. 15 Jan, 2019 7 commits
  8. 14 Jan, 2019 1 commit
    • Eugene Kosov's avatar
      MDEV-18233 Moving the hash_node_t to improve locality of reference · a06a3e46
      Eugene Kosov authored
      When performing a hash search via HASH_SEARCH we first look at a key of a node
      and then at its pointer to the next node in chain. If we have those in one cache
      line instead of a two we reduce memory reads.
      
      I found dict_table_t, fil_space_t and buf_page_t suitable for such improvement.
      a06a3e46