1. 09 May, 2018 9 commits
    • Jacob Mathew's avatar
      MDEV-15697: Remote user used by Spider needs SUPER privilege · 8b087c63
      Jacob Mathew authored
      The remote users need the SUPER privilege because by default Spider sends a
      'SET SQL_LOG_OFF' statement to the data nodes.  This is controlled by the
      spider_internal_sql_log_off configuration setting on the Spider node, which
      can only be set to 0 or 1, with a default value of 1.
      
      I have fixed the problem by changing this configuration setting so that if it
      is NOT SET, which is the most likely case, the Spider node DOES NOT SEND the
      'SET SQL_LOG_OFF' statement to the data nodes.  However if the
      spider_internal_sql_log_off setting IS EXPLICITLY SET to either 0 or 1, then
      the Spider node DOES SEND the 'SET SQL_LOG_OFF' statement, requiring a remote
      user with the SUPER privilege.  The Spider documentation will be updated to
      reflect this change.
      
      Author:
        Jacob Mathew.
      
      Reviewer:
        Kentoku Shiba.
      
      Merged:
        Branch bb-10.3-MDEV-15697 into 10.3
      8b087c63
    • Marko Mäkelä's avatar
      Rename a test (fix merge error) · 85ccdd9f
      Marko Mäkelä authored
      85ccdd9f
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-16125 Crash or ASAN heap-buffer-overflow in... · d94a9553
      Thirunarayanan Balathandayuthapani authored
      MDEV-16125 Crash or ASAN heap-buffer-overflow in mach_read_from_n_little_endian upon ALTER TABLE with blob
      
      - Virtual column should be considered only to find the respective non-null fields.
      But virtual column can never changed from NULL to NOT NULL.
      d94a9553
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · e9f26097
      Marko Mäkelä authored
      e9f26097
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-16125 Shutdown crash when innodb_force_recovery >= 2 · fe95cb2e
      Thirunarayanan Balathandayuthapani authored
      Problem:
      =======
      InnoDB master thread encounters the shutdown state as SRV_SHUTDOWN_FLUSH_PHASE
      when innodb_force_recovery >=2 and slow scheduling of master thread during
      shutdown.
      
      Fix:
      ====
      There is no need for master thread itself if innodb_force_recovery >=2.
      Don't create the master thread if innodb_force_recovery >= 2
      fe95cb2e
    • Marko Mäkelä's avatar
      9be99dac
    • Marko Mäkelä's avatar
      MDEV-15916 Change buffer crash during TRUNCATE or DROP TABLE · 0ea625b3
      Marko Mäkelä authored
      ibuf_restore_pos(): Do not issue any messages if the tablespace
      is being dropped or truncated. In MariaDB 10.2, TRUNCATE TABLE
      would not change the tablespace ID, and therefore the tablespace
      would be found, even though TRUNCATE is in progress.
      
      Furthermore, do not commit suicide if restoring the change buffer
      cursor fails. The worst that could happen is that a secondary index
      becomes corrupted due to incomplete change buffer merge.
      0ea625b3
    • Igor Babaev's avatar
      MDEV-16104 Server crash in JOIN::fix_all_splittings_in_plan · fc0f5adb
      Igor Babaev authored
      upon select with view and subqueries
      
      This bug occurred when a splittable materialized derived/view
      were used inside another splittable materialized derived/view.
      The bug happened because the function JOIN::fix_all_splittings_in_plan()
      was called at the very beginning of the optimization phase 2 at
      the moment when the plan structure of the embedding derived/view
      were not valid. The proper position for this call is the very
      end of the optimization phase 1.
      fc0f5adb
    • Daniel Black's avatar
  2. 08 May, 2018 7 commits
  3. 07 May, 2018 9 commits
    • Igor Babaev's avatar
    • Monty's avatar
      Added test case for MDEV-13007 ALTER .. ENGINE on temporary sequence may go wrong · bd09c5ca
      Monty authored
      Looks like the bug was fixed some time ago (at least I can't repeat it).
      I added the test case just have this case tested properly.
      bd09c5ca
    • Daniel Black's avatar
      mysys: disable "optimized" memcpy from 18 years ago · d405bee0
      Daniel Black authored
      MDEV-15843 mysys: remove optimized memcpy from 18 years ago
      
      While this code has remained dormant for 18 years, libc implementers
      have used assembly features to gain improvements using achitecture
      features optimized and by the buffer length like:
      * https://svnweb.freebsd.org/base/head/lib/libc/amd64/string/memcmp.S
      * https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/aarch64/memcmp.S
      * https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/powerpc/powerpc64/memcpy.S
      
      From an sysbench-1.0.6 oltp_read_only test on binary charset table:
      
      x86_64:
      was ptr_compare_0:
      perf report -g --no-children:
      +    3.37%  mysqld   mysqld               [.] hp_rec_hashnr
      +    3.15%  mysqld   libc-2.26.so         [.] __memmove_avx_unaligned_erms
      +    2.73%  mysqld   mysqld               [.] row_search_mvcc
      +    1.97%  mysqld   mysqld               [.] rec_get_offsets_func
      +    1.24%  mysqld   mysqld               [.] ptr_compare_0
      +    1.14%  mysqld   mysqld               [.] my_qsort2
      
      After: __memcmp_avx2_movbe
      +    3.42%  mysqld   mysqld               [.] hp_rec_hashnr
      +    2.96%  mysqld   libc-2.26.so         [.] __memmove_avx_unaligned_erms
      +    2.91%  mysqld   mysqld               [.] row_search_mvcc
      +    2.13%  mysqld   mysqld               [.] rec_get_offsets_func
      +    1.18%  mysqld   libc-2.26.so         [.] __memcmp_avx2_movbe
      +    1.04%  mysqld   mysqld               [.] evaluate_join_record
      +    1.02%  mysqld   mysqld               [.] my_qsort2
      
      Power9:
      Before: ptr_compare_0
      +    4.24%  mysqld   mysqld               [.] _Z15row_search_mvccPh15page_cur_mode_tP14row_prebuilt_tmm
      +    2.18%  mysqld   mysqld               [.] hp_rec_hashnr
      +    2.07%  mysqld   mysqld               [.] _Z20rec_get_offsets_funcPKhPK12dict_index_tPmbmPP16mem_block_info_t
      +    1.60%  mysqld   mysqld               [.] _ZL20evaluate_join_recordP4JOINP13st_join_tablei
      +    1.20%  mysqld   mysqld               [.] _ZN11ha_innobase13general_fetchEPhjj
      +    1.05%  mysqld   mysqld               [.] _ZN17Item_func_between15val_int_cmp_intEv
      +    0.92%  mysqld   mysqld               [.] _Z40row_sel_field_store_in_mysql_format_funcPhPK17mysql_row_templ_tPKhm
      +    0.91%  mysqld   mysqld               [.] _ZNK10Item_param6PValue7val_intEPK19Type_std_attributes
      +    0.84%  mysqld   mysqld               [.] ptr_compare_0
      
      After: __memcmp_power8
      +    2.29%  mysqld           mysqld                  [.] _Z15row_search_mvccPh15page_cur_mode_tP14row_prebuilt_tmm
      +    1.32%  mysqld           mysqld                  [.] hp_rec_hashnr
      +    1.18%  swapper          [kernel.kallsyms]       [k] power_enter_stop
      +    1.12%  mysqld           mysqld                  [.] _Z20rec_get_offsets_funcPKhPK12dict_index_tPmbmPP16mem_block_info_t
      +    0.87%  mysqld           mysqld                  [.] _ZL20evaluate_join_recordP4JOINP13st_join_tablei
      +    0.87%  mysqld           [kernel.kallsyms]       [k] ___bpf_prog_run
      +    0.76%  mysqld           libc-2.26.so            [.] __memcmp_power8
      +    0.68%  mysqld           mysqld                  [.] _ZN11ha_innobase13general_fetchEPhjj
      +    0.58%  mysqld           mysqld                  [.] _ZN17Item_func_between15val_int_cmp_intEv
      d405bee0
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 1a4c355a
      Marko Mäkelä authored
      1a4c355a
    • Marko Mäkelä's avatar
      MDEV-14825 Assertion `col->ord_part' in row_build_index_entry_low upon... · e44ca6cc
      Marko Mäkelä authored
      MDEV-14825 Assertion `col->ord_part' in row_build_index_entry_low upon ROLLBACK or DELETE with concurrent ALTER on partitioned table
      
      If creating a secondary index fails (typically, ADD UNIQUE INDEX fails
      due to duplicate key), it is possible that concurrently running UPDATE
      or DELETE will access the index stub and hit the debug assertion.
      
      It does not make any sense to keep updating an uncommitted index whose
      creation has failed.
      
      dict_index_t::is_corrupted(): Replaces dict_index_is_corrupted().
      Also take online_status into account.
      
      Replace some calls to dict_index_is_clust() with calls to
      dict_index_t::is_primary().
      e44ca6cc
    • Daniel Black's avatar
      sp_cache_package_routine: fix compile warning · 005d53f6
      Daniel Black authored
      (clang-3.8)
      sql/sp.cc:2834:53: warning: implicit conversion of NULL constant to 'size_t' (aka 'unsigned long') [-Wnull-conversion]
          size_t prefix_length= dot ? dot - tmp.str + 1 : NULL;
                 ~~~~~~~~~~~~~                            ^~~~
                                                          0
      005d53f6
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-13134 Introduce ALTER TABLE attributes ALGORITHM=NOCOPY and ALGORITHM=INSTANT · c5b28e55
      Thirunarayanan Balathandayuthapani authored
      Remove the warning for InnoDB rebuilding table to add column FTS_DOC_ID.
      c5b28e55
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-13134 Introduce ALTER TABLE attributes ALGORITHM=NOCOPY and ALGORITHM=INSTANT · 85cc6b70
      Thirunarayanan Balathandayuthapani authored
      Introduced new alter algorithm type called NOCOPY & INSTANT for
      inplace alter operation.
      
      NOCOPY - Algorithm refuses any alter operation that would
      rebuild the clustered index. It is a subset of INPLACE algorithm.
      
      INSTANT - Algorithm allow any alter operation that would
      modify only meta data. It is a subset of NOCOPY algorithm.
      
      Introduce new variable called alter_algorithm. The values are
      DEFAULT(0), COPY(1), INPLACE(2), NOCOPY(3), INSTANT(4)
      
      Message to deprecate old_alter_table variable and make it alias
      for alter_algorithm variable.
      
      alter_algorithm variable for slave is always set to default.
      85cc6b70
    • Daniel Black's avatar
      mtr: extend func_math (CRC32) · 97486599
      Daniel Black authored
      97486599
  4. 06 May, 2018 12 commits
  5. 04 May, 2018 3 commits
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · b20039dd
      Marko Mäkelä authored
      b20039dd
    • Marko Mäkelä's avatar
      MDEV-15764 InnoDB may write uninitialized garbage to redo log · d257c425
      Marko Mäkelä authored
      log_sys_init(), log_buffer_extend(): Add TRASH_ALLOC() instrumentation
      
      log_write_up_to(): Correctly calculate the byte offset.
      d257c425
    • Marko Mäkelä's avatar
      Make a test independent of the build options · 3b50cd24
      Marko Mäkelä authored
      The number of records in INFORMATION_SCHEMA.COLUMNS depends on the
      build options, and could easily change when features are added.
      We are not interested in the number of rows returned. The test was
      originally added because of problem 15 reported in MDEV-13900
      (testing for MDEV-11369 instant ADD COLUMN). The issue was an
      assertion failure ut_ad(!rec_is_default_row(rec, index))
      in lock_clust_rec_cons_read_sees(), because the 'default row' record
      was not being properly ignored by the b-tree cursor.
      3b50cd24