1. 26 May, 2017 6 commits
    • Marko Mäkelä's avatar
      Fix WITH_INNODB_EXTRA_DEBUG · 4114d1d4
      Marko Mäkelä authored
      4114d1d4
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 8c81f24d
      Marko Mäkelä authored
      8c81f24d
    • Marko Mäkelä's avatar
      MDEV-12926 encryption.innodb_onlinealter_encryption,... · 808f18c7
      Marko Mäkelä authored
      MDEV-12926 encryption.innodb_onlinealter_encryption, encryption.innodb-bad-key-change failed in buildbot with valgrind
      
      row_merge_write(): Pass the correct (possibly encrypted) buffer
      to os_file_write_int_fd().
      
      This bug was introduced in commit 65e1399e
      which included a commit to merge changes from MySQL 5.6.36 to
      MariaDB Server 10.0.
      808f18c7
    • Marko Mäkelä's avatar
      10.1 additions for MDEV-12052 Shutdown crash presumably due to master thread activity · 2f29fc3c
      Marko Mäkelä authored
      btr_defragment_thread(): Create the thread in the same place as other
      threads. Do not invoke btr_defragment_shutdown(), because
      row_drop_tables_for_mysql_in_background() in the master thread can still
      keep invoking btr_defragment_remove_table().
      
      logs_empty_and_mark_files_at_shutdown(): Wait for btr_defragment_thread()
      to exit.
      
      innobase_start_or_create_for_mysql(), innobase_shutdown_for_mysql():
      Skip encryption and scrubbing in innodb_read_only_mode.
      
      srv_export_innodb_status(): Do not export encryption or scrubbing
      statistics in innodb_read_only mode, because the threads will not
      be running.
      2f29fc3c
    • Marko Mäkelä's avatar
      Merge 10.0 to 10.1 · 4abc2dd0
      Marko Mäkelä authored
      4abc2dd0
    • Marko Mäkelä's avatar
      MDEV-12052 Shutdown crash presumably due to master thread activity · 449a88e1
      Marko Mäkelä authored
      InnoDB shutdown assumes that once the server has entered
      SRV_SHUTDOWN_FLUSH_PHASE, no change to persistent data is allowed.
      It was possible for the master thread to wake up while shutdown
      is executing in SRV_SHUTDOWN_FLUSH_PHASE or
      even in SRV_SHUTDOWN_LAST_PHASE.
      
      We do not yet know if further crashes at shutdown are possible.
      Also, we do not know if all the observed crashes could be explained
      by the race conditions that we are now fixing.
      
      srv_shutdown_print_master_pending(): Remove a redundant ut_time() call.
      
      srv_shutdown(): Renamed from srv_master_do_shutdown_tasks().
      
      srv_master_thread(): Do not resume after shutdown has been initiated.
      449a88e1
  2. 24 May, 2017 10 commits
  3. 23 May, 2017 7 commits
  4. 22 May, 2017 3 commits
  5. 21 May, 2017 1 commit
  6. 20 May, 2017 6 commits
    • Jan Lindström's avatar
      MDEV-12615: InnoDB page compression method snappy mostly does not compress pages · 90c52e52
      Jan Lindström authored
      Snappy compression method require that output buffer
      used for compression is bigger than input buffer.
      Similarly lzo require additional work memory buffer.
      Increase the allocated buffer accordingly.
      
      buf_tmp_buffer_t: removed unnecessary lzo_mem, crypt_buf_free and
      comp_buf_free.
      
      buf_pool_reserve_tmp_slot: use alligned_alloc and if snappy
      available allocate size based on snappy_max_compressed_length and
      if lzo is available increase buffer by LZO1X_1_15_MEM_COMPRESS.
      
      fil_compress_page: Remove unneeded lzo mem (we use same buffer)
      and if output buffer is not yet allocated allocate based similarly
      as above.
      
      Decompression does not require additional work area.
      
          Modify test to use same test as other compression method tests.
      90c52e52
    • Marko Mäkelä's avatar
      f8802009
    • Marko Mäkelä's avatar
      fe291c68
    • Marko Mäkelä's avatar
      Clean up a test · 45fe62b8
      Marko Mäkelä authored
      Changed global parameters will be reset by server restart.
      There is no need to save and restore the original values.
      45fe62b8
    • Marko Mäkelä's avatar
      After-merge fix for MDEV-11638 · a4d4a5fe
      Marko Mäkelä authored
      In commit 360a4a03
      some debug assertions were introduced to the page flushing code
      in XtraDB. Add these assertions to InnoDB as well, and adjust
      the InnoDB shutdown so that these assertions will not fail.
      
      logs_empty_and_mark_files_at_shutdown(): Advance
      srv_shutdown_state from the first phase SRV_SHUTDOWN_CLEANUP
      only after no page-dirtying activity is possible
      (well, except by srv_master_do_shutdown_tasks(), which will be
      fixed separately in MDEV-12052).
      
      rotate_thread_t::should_shutdown(): Already exit the key rotation
      threads at the first phase of shutdown (SRV_SHUTDOWN_CLEANUP).
      
      page_cleaner_sleep_if_needed(): Do not sleep during shutdown.
      This change is originally from XtraDB.
      a4d4a5fe
    • Marko Mäkelä's avatar
      Merge 10.0 into 10.1 · 65e1399e
      Marko Mäkelä authored
      Significantly reduce the amount of InnoDB, XtraDB and Mariabackup
      code changes by defining pfs_os_file_t as something that is
      transparently compatible with os_file_t.
      65e1399e
  7. 19 May, 2017 7 commits
    • Sergei Golubchik's avatar
      Merge branch '5.5' into 10.0 · 725e47bf
      Sergei Golubchik authored
      725e47bf
    • Sergei Golubchik's avatar
      compilation warnings in Connect · eb302303
      Sergei Golubchik authored
      eb302303
    • Marko Mäkelä's avatar
      Remove bogus __attribute__((nonnull)) · 7edadde7
      Marko Mäkelä authored
      These were reported when running tests after compiling the debug server
      with -O3 -fsanitize=undefined in GCC 7.1.0.
      7edadde7
    • Marko Mäkelä's avatar
      Fix a compilation warning introduced by MDEV-11782 · 9756440f
      Marko Mäkelä authored
      log_crypt(): Do not cast byte* to uint32_t*, because it may break
      strict aliasing rules. Instead, cast in the opposite direction.
      9756440f
    • Marko Mäkelä's avatar
      6f54d04e
    • Marko Mäkelä's avatar
      Fix some -Wimplicit-fallthrough warnings in InnoDB · 907cbadb
      Marko Mäkelä authored
      buf_read_ahead_linear(): Do not display a message if the tablespace
      is being deleted.
      
      dtype_print(): Add a missing break statement.
      907cbadb
    • Marko Mäkelä's avatar
      MDEV-12698 innodb.innodb_stats_del_mark test failure · 0bfa3dff
      Marko Mäkelä authored
      In my merge of the MySQL fix for Oracle Bug#23333990 / WL#9513
      I overlooked some subsequent revisions to the test, and I also
      failed to notice that the test is actually always failing.
      
      Oracle introduced the parameter innodb_stats_include_delete_marked
      but failed to consistently take it into account in FOREIGN KEY
      constraints that involve CASCADE or SET NULL.
      
      When innodb_stats_include_delete_marked=ON, obviously the purge of
      delete-marked records should update the statistics as well.
      
      One more omission was that statistics were never updated on ROLLBACK.
      We are fixing that as well, properly taking into account the
      parameter innodb_stats_include_delete_marked.
      
      dict_stats_analyze_index_level(): Simplify an expression.
      (Using the ternary operator with a constant operand is unnecessary
      obfuscation.)
      
      page_scan_method_t: Revert the change done by Oracle. Instead,
      examine srv_stats_include_delete_marked directly where it is needed.
      
      dict_stats_update_if_needed(): Renamed from
      row_update_statistics_if_needed().
      
      row_update_for_mysql_using_upd_graph(): Assert that the table statistics
      are initialized, as guaranteed by ha_innobase::open(). Update the
      statistics in a consistent way, both for FOREIGN KEY triggers and
      for the main table. If FOREIGN KEY constraints exist, do not dereference
      a freed pointer, but cache the proper value of node->is_delete so that
      it matches prebuilt->table.
      
      row_purge_record_func(): Update statistics if
      innodb_stats_include_delete_marked=ON.
      
      row_undo_ins(): Update statistics (on ROLLBACK of a fresh INSERT).
      This is independent of the parameter; the record is not delete-marked.
      
      row_undo_mod(): Update statistics on the ROLLBACK of updating key columns,
      or (if innodb_stats_include_delete_marked=OFF) updating delete-marks.
      
      innodb.innodb_stats_persistent: Renamed and extended from
      innodb.innodb_stats_del_mark. Reduced the unnecessarily large dataset
      from 262,144 to 32 rows. Test both values of the configuration
      parameter innodb_stats_include_delete_marked.
      Test that purge is updating the statistics.
      
      innodb_fts.innodb_fts_multiple_index: Adjust the result. The test
      is performing a ROLLBACK of an INSERT, which now affects the statistics.
      
      include/wait_all_purged.inc: Moved from innodb.innodb_truncate_debug
      to its own file.
      0bfa3dff