1. 08 Jun, 2017 1 commit
  2. 06 Jun, 2017 3 commits
    • Marko Mäkelä's avatar
      Correct a merge error · 6439238c
      Marko Mäkelä authored
      6439238c
    • Marko Mäkelä's avatar
      Merge 10.0 into 10.1 · 30df297c
      Marko Mäkelä authored
      Rewrite the test encryption.innodb-checksum-algorithm not to
      require any restarts or re-bootstrapping, and to cover all
      innodb_page_size combinations.
      
      Test innodb.101_compatibility with all innodb_page_size combinations.
      30df297c
    • Marko Mäkelä's avatar
      Follow-up to MDEV-12042 (test innodb_page_size variants) · d8d39721
      Marko Mäkelä authored
      innodb_page_size_small: A new set of combinations, for
      innodb_page_size up to 16k. In MariaDB 10.0, this does not
      make a difference, but in 10.1 and later, innodb_page_size
      would cover 32k and 64k, for which ROW_FORMAT=COMPRESSED
      is not available.
      
      Enable these combinations in a few InnoDB tests.
      d8d39721
  3. 05 Jun, 2017 2 commits
  4. 01 Jun, 2017 4 commits
    • Elena Stepanova's avatar
    • Jan Lindström's avatar
      MDEV-12600: crash during install_db with innodb_page_size=32K and ibdata1=3M; · 112b21da
      Jan Lindström authored
      Problem was that all doublewrite buffer pages must fit to first
      system datafile.
      
      Ported commit 27a34df7882b1f8ed283f22bf83e8bfc523cbfde
      Author: Shaohua Wang <shaohua.wang@oracle.com>
      Date:   Wed Aug 12 15:55:19 2015 +0800
      
          BUG#21551464 - SEGFAULT WHILE INITIALIZING DATABASE WHEN
          INNODB_DATA_FILE SIZE IS SMALL
      
      To 10.1 (with extended error printout).
      
      btr_create(): If ibuf header page allocation fails report error and
      return FIL_NULL. Similarly if root page allocation fails return a error.
      
      dict_build_table_def_step: If fsp_header_init fails return
      error code.
      
      fsp_header_init: returns true if header initialization succeeds
      and false if not.
      
      fseg_create_general: report error if segment or page allocation fails.
      
      innobase_init: If first datafile is smaller than 3M and could not
      contain all doublewrite buffer pages report error and fail to
      initialize InnoDB plugin.
      
      row_truncate_table_for_mysql: report error if fsp header init
      fails.
      
      srv_init_abort: New function to report database initialization errors.
      
      srv_undo_tablespaces_init, innobase_start_or_create_for_mysql: If
      database initialization fails report error and abort.
      
      trx_rseg_create: If segment header creation fails return.
      112b21da
    • Jan Lindström's avatar
      MDEV-12114: install_db shows corruption for rest encryption and... · 6b698715
      Jan Lindström authored
      MDEV-12114: install_db shows corruption for rest encryption and innodb_checksum_algorithm=strict_none
      
      Problem was that checksum check resulted false positives that page is
      both not encrypted and encryted when checksum_algorithm was
      strict_none.
      
      Encrypton checksum will use only crc32 regardless of setting.
      
      buf_zip_decompress: If compression fails report a error message
      containing the space name if available (not available during import).
      And note if space could be encrypted.
      
      buf_page_get_gen: Do not assert if decompression fails,
      instead unfix the page and return NULL to upper layer.
      
      fil_crypt_calculate_checksum: Use only crc32 method.
      
      fil_space_verify_crypt_checksum: Here we need to check
      crc32, innodb and none method for old datafiles.
      
      fil_space_release_for_io: Allow null space.
      
      encryption.innodb-compressed-blob is now run with crc32 and none
      combinations.
      
      Note that with none and strict_none method there is not really
      a way to detect page corruptions and page corruptions after
      decrypting the page with incorrect key.
      
      New test innodb-checksum-algorithm to test different checksum
      algorithms with encrypted, row compressed and page compressed
      tables.
      6b698715
    • Jan Lindström's avatar
      MDEV-12113: install_db shows corruption for rest encryption with innodb_data_file_path=ibdata1:3M; · 1af8bf39
      Jan Lindström authored
      Problem was that FIL_PAGE_FLUSH_LSN_OR_KEY_VERSION field that for
      encrypted pages even in system datafiles should contain key_version
      except very first page (0:0) is after encryption overwritten with
      flush lsn.
      
      Ported WL#7990 Repurpose FIL_PAGE_FLUSH_LSN to 10.1
      The field FIL_PAGE_FLUSH_LSN_OR_KEY_VERSION is consulted during
      InnoDB startup.
      
      At startup, InnoDB reads the FIL_PAGE_FLUSH_LSN_OR_KEY_VERSION
      from the first page of each file in the InnoDB system tablespace.
      If there are multiple files, the minimum and maximum LSN can differ.
      These numbers are passed to InnoDB startup.
      
      Having the number in other files than the first file of the InnoDB
      system tablespace is not providing much additional value. It is
      conflicting with other use of the field, such as on InnoDB R-tree
      index pages and encryption key_version.
      
      This worklog will stop writing FIL_PAGE_FLUSH_LSN_OR_KEY_VERSION to
      other files than the first file of the InnoDB system tablespace
      (page number 0:0) when system tablespace is encrypted. If tablespace
      is not encrypted we continue writing FIL_PAGE_FLUSH_LSN_OR_KEY_VERSION
      to all first pages of system tablespace to avoid unnecessary
      warnings on downgrade.
      
      open_or_create_data_files(): pass only one flushed_lsn parameter
      
      xb_load_tablespaces(): pass only one flushed_lsn parameter.
      
      buf_page_create(): Improve comment about where
      FIL_PAGE_FIL_FLUSH_LSN_OR_KEY_VERSION is set.
      
      fil_write_flushed_lsn(): A new function, merged from
      fil_write_lsn_and_arch_no_to_file() and
      fil_write_flushed_lsn_to_data_files().
      Only write to the first page of the system tablespace (page 0:0)
      if tablespace is encrypted, or write all first pages of system
      tablespace and invoke fil_flush_file_spaces(FIL_TYPE_TABLESPACE)
      afterwards.
      
      fil_read_first_page(): read flush_lsn and crypt_data only from
      first datafile.
      
      fil_open_single_table_tablespace(): Remove output of LSN, because it
      was only valid for the system tablespace and the undo tablespaces, not
      user tablespaces.
      
      fil_validate_single_table_tablespace(): Remove output of LSN.
      
      checkpoint_now_set(): Use fil_write_flushed_lsn and output
      a error if operation fails.
      
      Remove lsn variable from fsp_open_info.
      
      recv_recovery_from_checkpoint_start(): Remove unnecessary second
      flush_lsn parameter.
      
      log_empty_and_mark_files_at_shutdown(): Use fil_writte_flushed_lsn
      and output error if it fails.
      
      open_or_create_data_files(): Pass only one flushed_lsn variable.
      1af8bf39
  5. 31 May, 2017 1 commit
  6. 29 May, 2017 5 commits
  7. 27 May, 2017 1 commit
  8. 26 May, 2017 7 commits
    • Sergei Golubchik's avatar
      Merge branch '10.0-galera' into 10.1 · f42e08f9
      Sergei Golubchik authored
      f42e08f9
    • Elena Stepanova's avatar
    • Elena Stepanova's avatar
      On a build without performance schema the test failed · 994a5f29
      Elena Stepanova authored
      performance-schema options in option files should be loose. The tests
      will be skipped after have_perfschema.inc check, but if options aren't
      loose, the failure happens on server startup, before the check
      994a5f29
    • 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
  9. 24 May, 2017 10 commits
  10. 23 May, 2017 6 commits