1. 28 Aug, 2017 1 commit
  2. 23 Aug, 2017 1 commit
    • Marko Mäkelä's avatar
      MDEV-13167 InnoDB key rotation is not skipping unused pages · 97f9d3c0
      Marko Mäkelä authored
      In key rotation, we must initialize unallocated but previously
      initialized pages, so that if encryption is enabled on a table,
      all clear-text data for the page will eventually be overwritten.
      But we should not rotate keys on pages that were never allocated
      after the data file was created.
      
      According to the latching order rules, after acquiring the
      tablespace latch, no page latches of previously allocated user pages
      may be acquired. So, key rotation should check the page allocation
      status after acquiring the page latch, not before. But, the latching
      order rules also prohibit accessing pages that were not allocated first,
      and then acquiring the tablespace latch. Such behaviour would indeed
      result in a deadlock when running the following tests:
      encryption.innodb_encryption-page-compression
      encryption.innodb-checksum-algorithm
      
      Because the key rotation is accessing potentially unallocated pages, it
      cannot reliably check if these pages were allocated. It can only check
      the page header. If the page number is zero, we can assume that the
      page is unallocated.
      
      fil_crypt_rotate_page(): Detect uninitialized pages by FIL_PAGE_OFFSET.
      Page 0 is never encrypted, and on other pages that are initialized,
      FIL_PAGE_OFFSET must contain the page number.
      
      fil_crypt_is_page_uninitialized(): Remove. It suffices to check the
      page number field in fil_crypt_rotate_page().
      97f9d3c0
  3. 22 Aug, 2017 1 commit
  4. 21 Aug, 2017 1 commit
  5. 17 Aug, 2017 2 commits
  6. 15 Aug, 2017 3 commits
  7. 14 Aug, 2017 1 commit
  8. 13 Aug, 2017 2 commits
  9. 10 Aug, 2017 1 commit
  10. 09 Aug, 2017 3 commits
  11. 08 Aug, 2017 7 commits
  12. 07 Aug, 2017 4 commits
    • Daniel Bartholomew's avatar
      bump the VERSION · ef2e51c3
      Daniel Bartholomew authored
      ef2e51c3
    • Jan Lindström's avatar
      MDEV-13443: Port innochecksum tests from 10.2 innodb_zip suite to 10.1 · 2ef7a5a1
      Jan Lindström authored
      This is basically port of WL6045:Improve Innochecksum with some
      code refactoring on innochecksum.
      
      Added page0size.h include from 10.2 to make 10.1 vrs 10.2 innochecksum
      as identical as possible.
      
      Added page 0 checksum checking and if that fails whole test fails.
      2ef7a5a1
    • Monty's avatar
      Fixed compiler warnings · 19f2b3d0
      Monty authored
      19f2b3d0
    • Monty's avatar
      MDEV-13179 main.errors fails with wrong errno · 74543698
      Monty authored
      The problem was that the introduction of max-thread-mem-used can cause
      an allocation error very early, even before mysql_parse() is called.
      As mysql_parse() calls thd->reset_for_next_command(), which called
      clear_error(), the error number was lost.
      
      Fixed by adding an option to have unique messages for each KILL
      signal and change max-thread-mem-used to use this new feature.
      This removes a lot of problems with the original approach, where
      one could get errors signaled silenty almost any time.
      
      ixed by moving clear_error() from reset_for_next_command() to
      do_command(), before any memory allocation for the thread.
      
      Related changes:
      - reset_for_next_command() now have an optional parameter if we should
        call clear_error() or not. By default it's called, but not anymore from
        dispatch_command() which was the original problem.
      - Added optional paramater to clear_error() to force calling of
        reset_diagnostics_area(). Before clear_error() only called
        reset_diagnostics_area() if there was no error, so we normally
        called reset_diagnostics_area() twice.
      - This change removed several duplicated calls to clear_error()
        when starting a query.
      - Reset max_mem_used on COM_QUIT, to protect against kill during
        quit.
      - Use fatal_error() instead of setting is_fatal_error (cleanup)
      - Set fatal_error if max_thead_mem_used is signaled.
        (Same logic we use for other places where we are out of resources)
      74543698
  13. 05 Aug, 2017 1 commit
  14. 04 Aug, 2017 2 commits
  15. 03 Aug, 2017 9 commits
  16. 02 Aug, 2017 1 commit