1. 14 Dec, 2016 3 commits
  2. 13 Dec, 2016 1 commit
    • Jan Lindström's avatar
      MDEV-10368: get_latest_version() called too often · 72cc73ce
      Jan Lindström authored
      Reduce the number of calls to encryption_get_key_get_latest_version
      when doing key rotation with two different methods:
      
      (1) We need to fetch key information when tablespace not yet
      have a encryption information, invalid keys are handled now
      differently (see below). There was extra call to detect
      if key_id is not found on key rotation.
      
      (2) If key_id is not found from encryption plugin, do not
      try fetching new key_version for it as it will fail anyway.
      We store return value from encryption_get_key_get_latest_version
      call and if it returns ENCRYPTION_KEY_VERSION_INVALID there
      is no need to call it again.
      72cc73ce
  3. 12 Dec, 2016 3 commits
  4. 11 Dec, 2016 2 commits
  5. 10 Dec, 2016 2 commits
  6. 09 Dec, 2016 2 commits
  7. 08 Dec, 2016 4 commits
    • Sergei Golubchik's avatar
      MDEV-10713: signal 11 error on multi-table update - crash in... · 03dabfa8
      Sergei Golubchik authored
      MDEV-10713: signal 11 error on multi-table update - crash in handler::increment_statistics or in make_select or assertion failure pfs_thread == ((PFS_thread*) pthread_getspecific((THR_PFS)))
      
      Different fix. Don't allow Item_func_sp to be evaluated unless
      all tables are prelocked.
      
      Extend the test case to make sure Item_func_sp::val_str is called
      (the table must have at least one row for that).
      03dabfa8
    • Sergei Golubchik's avatar
      Revert "MDEV-10713: signal 11 error on multi-table update - crash in... · ab65db6d
      Sergei Golubchik authored
      Revert "MDEV-10713: signal 11 error on multi-table update - crash in handler::increment_statistics or in make_select or assertion failure pfs_thread == ((PFS_thread*) pthread_getspecific((THR_PFS)))"
      
      This reverts commit 035a5ac6.
      
      Two minor problems and one regression:
      1. caching the value in str_result. Other Item methods may use it,
         destroying the cache. See, for example, Item::save_in_field, where
         str_result is moved to use a local buffer (this failed main.grant)
      2. Item_func_conv_charset::safe is now set too late, it's initialized
         only in val_str() but checked before that, this failed many tests
         in optimized builds.
      
      to fix 1 - use tmp_result instead of str_result, to fix 2, use
      the else branch in the Item_func_conv_charset constructor to set
      safe purely from charset properties.
      
      But this introduces a regression, constant strings can no longer be
      converted, say, from utf8 to latin1 (because 'safe' will be false).
      This fails few tests too. There is no way to fix it without reverting
      the commit and converting constants, as before, in the constructor.
      ab65db6d
    • Elena Stepanova's avatar
      MDEV-11491 binlog_encryption.rpl_checksum fails sporadically in buildbot · 870d7589
      Elena Stepanova authored
      The race condition happened if mark_xid_done was considerably delayed,
      and an extra Binlog_checkpoint event was written into the binary log
      which was later indicated in an error message. Fixed by ensuring
      that the event is written before the binary log is rotated to the one
      which is used in the output.
      870d7589
    • Elena Stepanova's avatar
      MDEV-11504 binlog_encryption.encrypted_master_switch_to_unencrypted fails sporadically in buildbot · 8e702bce
      Elena Stepanova authored
      The reason is a simple race condition. Initially the test was meant to synchronize with master
      before showing tables, but it turned out that the slave IO thread should fail by this point,
      and synchronization was removed along with a server bugfix. Now added an intermediate sync
      instead, to make sure that slave has replicated events before the point of failure
      8e702bce
  8. 07 Dec, 2016 9 commits
  9. 06 Dec, 2016 10 commits
  10. 05 Dec, 2016 4 commits
    • Ronak Jain's avatar
      fixes MDEV-11354 twin include · d036be72
      Ronak Jain authored
      d036be72
    • Elena Stepanova's avatar
      MDEV-9038 Binlog encryption tests · 611f9160
      Elena Stepanova authored
      - created binlog_encryption test suite and added it to the default list
      - moved some tests from rpl, binlog and multisource suites to extra
        so that they could be re-used in different suites
      - made minor changes in include files
      611f9160
    • Sergei Golubchik's avatar
      MDEV-10293 'setupterm' was not declared in this scope · 18cdff67
      Sergei Golubchik authored
      Check for readline before checking for curses headers, because
      MYSQL_CHECK_READLINE fails when curses is not found, but
      CHECK_INCLUDE_FILES simply remembers the fact and continues.  So if
      there's no curses, MYSQL_CHECK_READLINE will abort, the user will then
      installs curses and continue the build. Thus, CHECK_INCLUDE_HEADERS
      will remember that there is no curses, but other checks from
      MYSQL_CHECK_READLINE will remember that curses are there. It will
      result in inconsistent HAVE_xxx defines.
      18cdff67
    • Marko Mäkelä's avatar
      MDEV-11233 CREATE FULLTEXT INDEX with a token longer than 127 bytes · 9199d727
      Marko Mäkelä authored
      crashes server
      
      This bug is the result of merging the Oracle MySQL follow-up fix
      BUG#22963169 MYSQL CRASHES ON CREATE FULLTEXT INDEX
      without merging the base bug fix:
      Bug#79475 Insert a token of 84 4-bytes chars into fts index causes
      server crash.
      
      Unlike the above mentioned fixes in MySQL, our fix will not change
      the storage format of fulltext indexes in InnoDB or XtraDB
      when a character encoding with mbmaxlen=2 or mbmaxlen=3
      and the length of a word is between 128 and 84*mbmaxlen bytes.
      The Oracle fix would allocate 2 length bytes for these cases.
      
      Compatibility with other MySQL and MariaDB releases is ensured by
      persisting the used maximum length in the SYS_COLUMNS table in the
      InnoDB data dictionary.
      
      This fix also removes some unnecessary strcmp() calls when checking
      for the legacy default collation my_charset_latin1
      (my_charset_latin1.name=="latin1_swedish_ci").
      
      fts_create_one_index_table(): Store the actual length in bytes.
      This metadata will be written to the SYS_COLUMNS table.
      
      fts_zip_initialize(): Initialize only the first byte of the buffer.
      Actually the code should not even care about this first byte, because
      the length is set as 0.
      
      FTX_MAX_WORD_LEN: Define as HA_FT_MAXCHARLEN * 4 aka 336 bytes,
      not as 254 bytes.
      
      row_merge_create_fts_sort_index(): Set the actual maximum length of the
      column in bytes, similar to fts_create_one_index_table().
      
      row_merge_fts_doc_tokenize(): Remove the redundant parameter word_dtype.
      Use the actual maximum length of the column. Calculate the extra_size
      in the same way as row_merge_buf_encode() does.
      9199d727