1. 07 Sep, 2018 3 commits
  2. 06 Sep, 2018 7 commits
  3. 05 Sep, 2018 4 commits
    • Sergei Golubchik's avatar
      MDEV-16465 Invalid (old?) table or database name or hang in... · 0ccba62d
      Sergei Golubchik authored
      MDEV-16465 Invalid (old?) table or database name or hang in ha_innobase::delete_table and log semaphore wait upon concurrent DDL with foreign keys
      
      lowercase db and table names before prelocking.
      
      Post-fix for 9180e866
      
      This fixes failures on main.lowercase_table4 on Windows
      0ccba62d
    • Sergey Vojtovich's avatar
      MDEV-16757 Memory leak after adding manually min/max statistical data · 4cf75706
      Sergey Vojtovich authored
                 for blob column
      
      Moved delete_stat_values_for_table_share() call to proper place.
      4cf75706
    • Jan Lindström's avatar
      Galera test case cleanups. · 6695fcea
      Jan Lindström authored
      6695fcea
    • Jan Lindström's avatar
      MDEV-15436: If log_bin and log_bin_index is different SST with rsync fails. · b44b9f71
      Jan Lindström authored
      Problem was that in SST log_bin_index name and directory was not
      handled and passed to rsync SST script.
      
      wsrep_sst_common.sh
      	Read binlog index dirname and filename if --binlog-index
      	parameter is provided. Read binlog filenames from that file
      	from donor and write transfered binlog filenames to that
      	file in joiner.
      
      mysqld.cc, mysqld.h
      	Moved opt_binlog_index_name from static to global and added
      	it to extern.
      
      wsrep_sst.cc
      
      generate_binlog_index_opt_val
      	New function to generate binlog index name if opt_binlog_index_name is
      	given on configuration.
      
      sst_prepare_other
      	Add binlog index configuration to SST command.
      
      wsrep_sst.h
      	Add new SST parameter --binlog-index
      
      Add test case.
      b44b9f71
  4. 04 Sep, 2018 17 commits
    • Marko Mäkelä's avatar
      Add MDEV-11080, MDEV-16709 tests for the MDEV-13333 fix · 4caf3e08
      Marko Mäkelä authored
      The regression that was introduced in
      commit 723f87e9
      was fixed as part of MDEV-13333
      (commit 3b37edee)
      without a test case, because the MDEV-13333 test case
      is even less deterministic than these ones.
      4caf3e08
    • Sergei Golubchik's avatar
      09bc99fa
    • Sergei Golubchik's avatar
      MDEV-16465 Invalid (old?) table or database name or hang in... · d831cefb
      Sergei Golubchik authored
      MDEV-16465 Invalid (old?) table or database name or hang in ha_innobase::delete_table and log semaphore wait upon concurrent DDL with foreign keys
      
      Disable "Invalid (old?) table or database name" warning when
      converting table names in InnoDB's get_foreign_key_info().
      
      Because a name can be a temporary table name during the ALTER TABLE,
      and some other thread can do SHOW CREATE TABLE for the other table
      in the FK relationships _anytime_.
      d831cefb
    • Sergei Golubchik's avatar
      MDEV-16465 Invalid (old?) table or database name or hang in... · 9180e866
      Sergei Golubchik authored
      MDEV-16465 Invalid (old?) table or database name or hang in ha_innobase::delete_table and log semaphore wait upon concurrent DDL with foreign keys
      
      ALTER TABLE locks the table with TL_READ_NO_INSERT, to prevent the
      source table modifications while it's being copied. But there's an
      indirect way of modifying a table, via cascade FK actions.
      
      After previous commits, an attempt to modify an FK parent table
      will cause FK children to be prelocked, so the table-being-altered
      cannot be modified by a cascade FK action, because ALTER holds a
      lock and prelocking will wait.
      
      But if a new FK is being added by this very ALTER, then the target
      table is not locked yet (it's a temporary table). So, we have to
      lock FK parents explicitly.
      9180e866
    • Sergei Golubchik's avatar
      e81f101d
    • Sergei Golubchik's avatar
      MDEV-12669 Circular foreign keys cause a loop and OOM upon LOCK TABLE · dd74332d
      Sergei Golubchik authored
      table_already_fk_prelocked() was looking for a table in the wrong
      list (not the complete list of prelocked tables, but only in its tail,
      starting from the current table - which is always empty for the last
      added table), so for circular FKs it kept adding same tables to the list
      indefinitely.
      
      Backport of d6d7e169
      dd74332d
    • Sergei Golubchik's avatar
      compilation failure · 710093cc
      Sergei Golubchik authored
      710093cc
    • Sergei Golubchik's avatar
      fix failures of innodb_plugin tests in --embedded · a6246cab
      Sergei Golubchik authored
      Post-fix for 7e8ed15b
      
      Also, apply the same innodb fix to xtradb.
      a6246cab
    • Sergei Golubchik's avatar
      MDEV-15792 Fix mtr to be able to wait for >1 exited mysqld · c2727547
      Sergei Golubchik authored
      Post-merge fixes: minor perlification and get rid of an
      annoying run-time warning (undef value in string comparison)
      
      Closes #709
      c2727547
    • Vasil Dimov's avatar
      MDEV-15792 Fix mtr to be able to wait for >1 exited mysqld · 1d98255f
      Vasil Dimov authored
      If a mtr test case has started two mysqld processes (replication tests),
      then kills the first one and kills the second one before starting the
      first (so at some point there are two mysqlds down), then the ./mtr
      waiting process bricks and forgets to monitor the "expect" file of the
      first mysqld, so it never gets started again, even when its contents is
      changed to "restart".
      
      A victim of this deficiency is at least galera.galera_gcache_recover.
      
      The fix is to keep a list of all mysqlds we should wait to start, not
      just one (the last one killed).
      1d98255f
    • Sergei Golubchik's avatar
      82bb0158
    • Sergei Golubchik's avatar
      compiler warnings (clang 4.0.1 on i386) · 8bee7c16
      Sergei Golubchik authored
      extra/mariabackup/fil_cur.cc:361:42: warning: format specifies type 'unsigned long' but the argument has type 'ib_int64_t' (aka 'long long') [-Wformat]
      extra/mariabackup/fil_cur.cc:376:9: warning: format specifies type 'unsigned long' but the argument has type 'ib_int64_t' (aka 'long long') [-Wformat]
      sql/handler.cc:6196:45: warning: format specifies type 'unsigned long' but the argument has type 'wsrep_trx_id_t' (aka 'unsigned long long') [-Wformat]
      sql/log.cc:1681:16: warning: format specifies type 'unsigned long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
      sql/log.cc:1687:16: warning: format specifies type 'unsigned long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
      sql/wsrep_sst.cc:1388:86: warning: format specifies type 'long' but the argument has type 'wsrep_seqno_t' (aka 'long long') [-Wformat]
      sql/wsrep_sst.cc:232:86: warning: format specifies type 'long' but the argument has type 'wsrep_seqno_t' (aka 'long long') [-Wformat]
      storage/connect/filamdbf.cpp:450:47: warning: format specifies type 'short' but the argument has type 'int' [-Wformat]
      storage/connect/filamdbf.cpp:970:47: warning: format specifies type 'short' but the argument has type 'int' [-Wformat]
      storage/connect/inihandl.cpp:197:16: warning: address of array 'key->name' will always evaluate to 'true' [-Wpointer-bool-conversion]
      storage/innobase/btr/btr0scrub.cc:151:17: warning: format specifies type 'long' but the argument has type 'int' [-Wformat]
      storage/innobase/buf/buf0buf.cc:5085:8: warning: nonnull parameter 'bpage' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion]
      storage/innobase/fil/fil0crypt.cc:2454:5: warning: format specifies type 'long' but the argument has type 'int' [-Wformat]
      storage/innobase/handler/ha_innodb.cc:18685:7: warning: format specifies type 'unsigned long' but the argument has type 'wsrep_trx_id_t' (aka 'unsigned long long') [-Wformat]
      storage/innobase/row/row0mysql.cc:3319:5: warning: format specifies type 'long' but the argument has type 'int' [-Wformat]
      storage/innobase/row/row0mysql.cc:3327:5: warning: format specifies type 'long' but the argument has type 'int' [-Wformat]
      storage/maria/ma_norec.c:35:10: warning: implicit conversion from 'int' to 'my_bool' (aka 'char') changes value from 131 to -125 [-Wconstant-conversion]
      storage/maria/ma_norec.c:42:10: warning: implicit conversion from 'int' to 'my_bool' (aka 'char') changes value from 131 to -125 [-Wconstant-conversion]
      storage/maria/ma_test2.c:1009:12: warning: format specifies type 'unsigned long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
      storage/maria/ma_test2.c:1010:12: warning: format specifies type 'unsigned long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
      storage/mroonga/ha_mroonga.cpp:9189:44: warning: use of logical '&&' with constant operand [-Wconstant-logical-operand]
      storage/mroonga/vendor/groonga/lib/expr.c:4987:22: warning: comparison of constant -1 with expression of type 'grn_operator' is always false [-Wtautological-constant-out-of-range-compare]
      storage/xtradb/btr/btr0scrub.cc:151:17: warning: format specifies type 'long' but the argument has type 'int' [-Wformat]
      storage/xtradb/buf/buf0buf.cc:5047:8: warning: nonnull parameter 'bpage' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion]
      storage/xtradb/fil/fil0crypt.cc:2454:5: warning: format specifies type 'long' but the argument has type 'int' [-Wformat]
      storage/xtradb/row/row0mysql.cc:3324:5: warning: format specifies type 'long' but the argument has type 'int' [-Wformat]
      storage/xtradb/row/row0mysql.cc:3332:5: warning: format specifies type 'long' but the argument has type 'int' [-Wformat]
      unittest/sql/mf_iocache-t.cc:120:35: warning: format specifies type 'unsigned long' but the argument has type 'int' [-Wformat]
      unittest/sql/mf_iocache-t.cc:96:35: note: expanded from macro 'INFO_TAIL'
      8bee7c16
    • Sergei Golubchik's avatar
      MDEV-9627 clang builds fail on i386 · aec54fb9
      Sergei Golubchik authored
      don't use C11 atomics unless HAVE_GCC_C11_ATOMICS is defined
      aec54fb9
    • Sergei Golubchik's avatar
      Fix TokuDB's check for -Wno-address-of-packed-member · 64d4181f
      Sergei Golubchik authored
      (failed configure with old clang)
      64d4181f
    • Sergei Golubchik's avatar
      extend prelocking to FK-accessed tables · 64a23c1c
      Sergei Golubchik authored
      Backport of f1362910
      64a23c1c
    • Sergei Golubchik's avatar
      cleanup: sp_head::add_used_tables_to_table_list() · 3b365fa8
      Sergei Golubchik authored
      Use TABLE::init_one_table(), don't duplicate it.
      Put additional initializations into TABLE::init_one_table_for_prelocking()
      
      Backport of f1362910
      3b365fa8
    • Sergei Golubchik's avatar
      cleanup: FOREIGN_KEY_INFO · 22bcfa01
      Sergei Golubchik authored
      instead of returning strings for CASCADE/RESTRICT
      from every storage engine, use enum values
      
      Backport of a3614d33
      22bcfa01
  5. 03 Sep, 2018 4 commits
  6. 02 Sep, 2018 2 commits
  7. 31 Aug, 2018 3 commits
    • Oleksandr Byelkin's avatar
      MDEV-16957: Server crashes in Field_iterator_natural_join::next upon 2nd execution of SP · 796d54df
      Oleksandr Byelkin authored
      The problem was that join_columns creation was not finished due to error of notfound column in USING, but next execution tried to use join_columns lists.
      
      Solution is cleanup the lists on error. It can eat memory in statement MEM_ROOT but it is an error and error will be fixed or statement/procedure removed/altered.
      796d54df
    • Jan Lindström's avatar
      Disable failing Galera tests. · 288212f4
      Jan Lindström authored
      288212f4
    • Marko Mäkelä's avatar
      MDEV-16647 InnoDB fails to drop large temporary table on disconnect · f693170c
      Marko Mäkelä authored
      This regression was introduced in MDEV-16515.
      We would fail to drop a temporary table on client disconnect,
      because trx_is_interrupted() would hold. To add insult to
      injury, in MariaDB 10.1, InnoDB temporary tables are actually
      persistent, so the garbage temporary tables will never be dropped.
      
      row_drop_table_for_mysql(): If several iterations of
      buf_LRU_drop_page_hash_for_tablespace() are needed,
      do not interrupt dropping a temporary table even after
      the transaction was marked as killed.
      
      Server shutdown will still terminate the loop, and also DROP TABLE
      of persistent tables will keep checking if the execution was aborted.
      f693170c