1. 08 Feb, 2017 4 commits
    • Marko Mäkelä's avatar
      Remove some more error log spam. · 9fa20716
      Marko Mäkelä authored
      Do not effectively set DEBUG_DBUG='d' by setting DEBUG_DBUG='-d,...'.
      Instead, restore the saved value of DEBUG_DBUG.
      
      Also, split the test innodb_fts.innodb_fts_misc_debug into
      innodb_fts.crash_recovery and innodb_fts.misc_debug, and enable
      these tests for --valgrind, the latter test for --embedded,
      and the former tests for the non-debug server.
      9fa20716
    • Oleksandr Byelkin's avatar
      MDEV-11681: PARTITION BY LIST COLUMNS with default partition: Assertion... · a75633b5
      Oleksandr Byelkin authored
      MDEV-11681: PARTITION BY LIST COLUMNS with default partition: Assertion `part_info->num_list_values' failed in get_part_iter_for_interval_cols_via_map
      
      process adge case with only default partition
      a75633b5
    • Jan Lindström's avatar
      MDEV-11974: MariaDB 10.2 encryption does not support spatial indexes · 7b27465e
      Jan Lindström authored
      Encryption stores used key_version to
      FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION (offset 26)
      field. Spatial indexes store RTREE Split Sequence Number
      (FIL_RTREE_SPLIT_SEQ_NUM) in the same field. Both values
      can't be stored in same field. Thus, current encryption
      implementation does not support encrypting spatial indexes.
      
      fil_space_encrypt(): Do not encrypt page if page type is
      FIL_PAGE_RTREE (this is required for background
      encryption innodb-encrypt-tables=ON).
      
      create_table_info_t::check_table_options() Do not allow creating
      table with ENCRYPTED=YES if table contains spatial index.
      7b27465e
    • Alexander Barkov's avatar
  2. 07 Feb, 2017 6 commits
    • Alexey Botchkov's avatar
      MDEV-11554 innodb_gis.precise fails in buildbot on Power. · abe6aca8
      Alexey Botchkov authored
              Usual '8' turns into 7.9999999 on Power. Test case fixed.
      abe6aca8
    • Marko Mäkelä's avatar
      MDEV-11782 WIP: Support upgrade from MariaDB 10.1. · 92bbf4ad
      Marko Mäkelä authored
      recv_log_format_0_recover(): Invoke log_decrypt_after_read() after
      reading the old-format redo log buffer.
      
      With this change, we will upgrade to an encrypted redo log that
      is misleadingly carrying a MySQL 5.7.9 compatible format tag while
      the log blocks (other than the header and the checkpoint blocks)
      are in an incompatible, encrypted format.
      That needs to be fixed by introducing a new redo log format tag that
      indicates that the entire redo log is encrypted.
      92bbf4ad
    • Marko Mäkelä's avatar
      MDEV-11782 WIP: Clean up the code, and add a test. · b40a1fbc
      Marko Mäkelä authored
      LOG_CHECKPOINT_ARRAY_END, LOG_CHECKPOINT_SIZE: Remove.
      
      Change some error messages to refer to MariaDB 10.2.2 instead of
      MySQL 5.7.9.
      
      recv_find_max_checkpoint_0(): Do not abort when decrypting one of the
      checkpoint pages fails.
      b40a1fbc
    • Marko Mäkelä's avatar
      MDEV-12004 InnoDB wrongly thinks that a column is indexed · c5fc3a90
      Marko Mäkelä authored
      after failed ADD UNIQUE INDEX
      
      check_col_exists_in_indexes(): Add the parameter only_committed.
      When considering committed indexes, evaluate index->is_committed().
      Else, evaluate index->to_be_dropped.
      
      rollback_inplace_alter_table(): Invoke check_col_exists_in_indexes()
      with only_committed=true.
      c5fc3a90
    • Jan Lindström's avatar
      MDEV-11035: Restore removed disallow-writes for Galera · 2aa47d98
      Jan Lindström authored
      Galera disallow-writes feature was lost in InnoDB 5.7 merge
      to 10.2. This patch restores this feature and fixes test
      failure on test galera.galera_var_innodb_disallow_writes.
      2aa47d98
    • Igor Babaev's avatar
      Fixed bug mdev-11999. · c16c9e8e
      Igor Babaev authored
      This patch complements the patch for bug 11138.
      Without this patch some table-less queries with window functions
      could cause crashes due to a memory overwrite.
      c16c9e8e
  3. 06 Feb, 2017 5 commits
    • Marko Mäkelä's avatar
      MDEV-11985 Make innodb_read_only shutdown more robust · 2f00b73a
      Marko Mäkelä authored
      If InnoDB is started in innodb_read_only mode such that
      recovered incomplete transactions exist at startup
      (but the redo logs are clean), an assertion will fail at shutdown,
      because there would exist some non-prepared transactions.
      
      logs_empty_and_mark_files_at_shutdown(): Do not wait for incomplete
      transactions to finish if innodb_read_only or innodb_force_recovery>=3.
      Wait for purge to finish in only one place.
      
      trx_sys_close(): Relax the assertion that would fail first.
      
      trx_free_prepared(): Also free recovered TRX_STATE_ACTIVE transactions
      if innodb_read_only or innodb_force_recovery>=3.
      
      Also, revert my earlier fix to MySQL 5.7 because this fix is more generic:
      
      Bug#20874411 INNODB SHUTDOWN HANGS IF INNODB_FORCE_RECOVERY>=3
      SKIPPED ANY ROLLBACK
      
      trx_undo_fake_prepared(): Remove.
      
      trx_sys_any_active_transactions(): Revert the changes.
      2f00b73a
    • Marko Mäkelä's avatar
      MDEV-11948 innodb.log_file fails in buildbot on CentOS 5 · a440d6ed
      Marko Mäkelä authored
      Rewrite the test so that the main server is restarted, instead of
      --exec $MYSQLD_CMD. In this way, the test can be run with Valgrind
      and with any --mysqld=--innodb-page-size.
      
      Also remove the workaround --skip-innodb-use-native-aio. It should
      not be needed when we are inheriting the server parameters from
      the test environment.
      a440d6ed
    • Marko Mäkelä's avatar
      Test recovery when a .ibd file is a directory. · 3534500b
      Marko Mäkelä authored
      Datafile::validate_for_recovery(): Remove a redundant error message.
      An error is already reported by Datafile::open_read_write() if the
      file cannot be opened.
      
      Also, do not assign SEARCH_ABORT, so that the full test will be executed
      even if one step fails.
      3534500b
    • Marko Mäkelä's avatar
      Simplify innodb.innochecksum test. · 5a21094a
      Marko Mäkelä authored
      There already are ROW_FORMAT=COMPRESSED tests in innodb_zip.innochecksum_2.
      
      Use shutdown_mysqld.inc and start_mysqld.inc.
      5a21094a
    • Alexey Botchkov's avatar
      MDEV-11557 port MySQL-5.7 JSON tests to MariaDB. · abf75821
      Alexey Botchkov authored
              Fixes for issues found.
      abf75821
  4. 05 Feb, 2017 1 commit
  5. 03 Feb, 2017 6 commits
    • Igor Babaev's avatar
      Fixed bug mdev-10660. · 20aae56e
      Igor Babaev authored
      The method Item_sum::print did not print opening '(' after the name
      of simple window functions (like rank, dense_rank etc).
      As a result the view definitions with such window functions
      were formed invalid in .frm files.
      20aae56e
    • Marko Mäkelä's avatar
      MDEV-11947 InnoDB purge workers fail to shut down · bc12d993
      Marko Mäkelä authored
      srv_release_threads(): Actually wait for the threads to resume
      from suspension. On CentOS 5 and possibly other platforms,
      os_event_set() may be lost.
      
      srv_resume_thread(): A counterpart of srv_suspend_thread().
      Optionally wait for the event to be set, optionally with a timeout,
      and then release the thread from suspension.
      
      srv_free_slot(): Unconditionally suspend the thread. It is always
      in resumed state when this function is entered.
      
      srv_active_wake_master_thread_low(): Only call os_event_set().
      
      srv_purge_coordinator_suspend(): Use srv_resume_thread() instead
      of the complicated logic.
      bc12d993
    • Marko Mäkelä's avatar
      MDEV-11782 Work-in-progress (test only). · 3ebe0820
      Marko Mäkelä authored
      Test server startup with an empty encrypted redo log from 10.1.21.
      FIXME: Pass the encryption parameters. Currently we only test startup
      without properly set up encryption.
      3ebe0820
    • Marko Mäkelä's avatar
      52855048
    • Igor Babaev's avatar
      Fixed bug mdev-9923. · fd7accab
      Igor Babaev authored
      Partition and order lists of a window specification cannot
      use constant integer to refer to select list elements.
      fd7accab
    • Igor Babaev's avatar
      Fixed bug mdev-11594. · 5606f878
      Igor Babaev authored
      Using window functions over results of implicit groupings
      required special handling in JOIN::make_aggr_tables_info.
      The patch made sure that the result of implicit grouping
      was written into a temporary table properly.
      5606f878
  6. 02 Feb, 2017 3 commits
    • Alexey Botchkov's avatar
      MDEV-11938 json.json_no_table crashes or fails with valgrind warnings in... · d123ed85
      Alexey Botchkov authored
      MDEV-11938 json.json_no_table crashes or fails with valgrind warnings in json_find_path / Item_func_json_length::val_int.
      
              Paths with quoted keynames handled improperly.
      d123ed85
    • Marko Mäkelä's avatar
      Extend the innodb.log_corruption test. · 650ffcd3
      Marko Mäkelä authored
      Remove the dependency on unzip. Instead, generate the InnoDB files
      with perl.
      
      log_block_checksum_is_ok(): Correct the error message.
      
      recv_scan_log_recs(): Remove the duplicated error message for
      log block checksum mismatch.
      
      innobase_start_or_create_for_mysql(): If the server is in read-only
      mode or if innodb_force_recovery>=3, do not try to modify the system
      tablespace. (If the doublewrite buffer or the non-core system tables
      do not exist, do not try to create them.)
      
      innodb_shutdown(): Relax a debug assertion. If the system tablespace
      did not contain a doublewrite buffer and if we started up in
      innodb_read_only mode or with innodb_force_recovery>=3, it will not
      be created.
      
      dict_create_or_check_sys_tablespace(): Set the flag
      srv_sys_tablespaces_open when the tables exist.
      650ffcd3
    • Igor Babaev's avatar
      Fixed bug mdev-11867. · 8481c70e
      Igor Babaev authored
      If a window function with aggregation is over the result
      set of a grouping query then the argument of the aggregate
      function from the window function is allowed to be an
      aggregate function itself.
      8481c70e
  7. 01 Feb, 2017 11 commits
    • Igor Babaev's avatar
      69114862
    • Nirbhay Choubey's avatar
    • Georg Richter's avatar
      Fix for MDEV-11174: · 23628d12
      Georg Richter authored
      A GCM encrypted ciphertext must contain an authentication tag with AES_BLOCK_SIZE length, so we need to check that the length of ciphertext is at least AES_BLOCK_SIZE.
      23628d12
    • Marko Mäkelä's avatar
      Clean up a test. · e1977712
      Marko Mäkelä authored
      Import and adapt the changes from MySQL 5.7.
      e1977712
    • Marko Mäkelä's avatar
      Shut down InnoDB after aborted startup. · 81b7fe9d
      Marko Mäkelä authored
      This fixes memory leaks in tests that cause InnoDB startup to fail.
      
      buf_pool_free_instance(): Also free buf_pool->flush_rbt, which would
      normally be freed when crash recovery finishes.
      
      fil_node_close_file(), fil_space_free_low(), fil_close_all_files():
      Relax some debug assertions to tolerate !srv_was_started.
      
      innodb_shutdown(): Renamed from innobase_shutdown_for_mysql().
      Changed the return type to void. Do not assume that all subsystems
      were started.
      
      que_init(), que_close(): Remove (empty functions).
      
      srv_init(), srv_general_init(): Remove as global functions.
      
      srv_free(): Allow srv_sys=NULL.
      
      srv_get_active_thread_type(): Only return SRV_PURGE if purge really
      is running.
      
      srv_shutdown_all_bg_threads(): Do not reset srv_start_state. It will
      be needed by innodb_shutdown().
      
      innobase_start_or_create_for_mysql(): Always call srv_boot() so that
      innodb_shutdown() can assume that it was called. Make more subsystems
      dependent on SRV_START_STATE_STAT.
      
      srv_shutdown_bg_undo_sources(): Require SRV_START_STATE_STAT.
      
      trx_sys_close(): Do not assume purge_sys!=NULL. Do not call
      buf_dblwr_free(), because the doublewrite buffer can exist while
      the transaction system does not.
      
      logs_empty_and_mark_files_at_shutdown(): Do a faster shutdown if
      !srv_was_started.
      
      recv_sys_close(): Invoke dblwr.pages.clear() which would normally
      be invoked by buf_dblwr_process().
      
      recv_recovery_from_checkpoint_start(): Always release log_sys->mutex.
      
      row_mysql_close(): Allow the subsystem not to exist.
      81b7fe9d
    • Marko Mäkelä's avatar
      MDEV-11671 Duplicated message for innodb_page_size · 774056c8
      Marko Mäkelä authored
      Display a NOTE, not a WARNING for non-default page size.
      774056c8
    • Marko Mäkelä's avatar
      Actually invoke free() in ut_allocator::deallocate(). · 16bc16f9
      Marko Mäkelä authored
      The necessary call was inadvertently commented out in a
      merge of MySQL 5.7.14 to MariaDB 10.2.1
      (commit fec844ac).
      16bc16f9
    • Marko Mäkelä's avatar
      Make the innochecksum tests more robust. · a5d8dc18
      Marko Mäkelä authored
      As noted in MDEV-11947, we should disable the InnoDB doublewrite buffer
      during the tests, because when rewriting page checksums, innochecksum
      would skip the pages that are in the doublewrite buffer area. Because
      the doublewrite buffer is emptied on server startup and not shutdown,
      we should initially start with the doublewrite buffer disabled, so that
      there will be no warning messages for wrong page checksums in the
      doublewrite buffer.
      
      Also, correct the obvious typo where restart_options should have been
      $restart_parameters, so that InnoDB is actually verifying that the
      checksums were rewritten.
      a5d8dc18
    • Igor Babaev's avatar
      Adjusted tests after the fix for bug mdev-9976. · ba8ab6a7
      Igor Babaev authored
      Now ROWS is a reserved key word, so cannot be used
      as an alias name.
      ba8ab6a7
    • Igor Babaev's avatar
      Fixed bug mdev-9976. · 9073f9fd
      Igor Babaev authored
      This bug happens due to a conflict in the construct window_spec.
      (win_ref conflicts with the non-reserved key word ROWS).
      The standard SQL-2003 says that ROWS is a reserved key word.
      Made this key word reserved in our grammar and removed
      the conflict.
      9073f9fd
    • Igor Babaev's avatar
      Fixed bug mdev-10875. · 81c1abe8
      Igor Babaev authored
      Now, after the implementation of mdev-8646
      "Re-engineer the code for post-join operations"
      create_sort_index() can be called for subqueries.
      81c1abe8
  8. 31 Jan, 2017 4 commits