1. 14 Mar, 2014 1 commit
    • Michael Widenius's avatar
      MDEV-5829: STOP SLAVE resets global status variables · 275b3d64
      Michael Widenius authored
      Reason for the bug was an optimization for higher connect speed where we moved when global status was updated,
      but forgot to update states when slave thread dies.
      Fixed by adding thd->add_status_to_global() before deleting slave thread's thd.
      
      
      mysys/my_delete.c:
        Added missing newline
      sql/mysqld.cc:
        Use add_status_to_global()
      sql/slave.cc:
        Added missing add_status_to_global()
      sql/sql_class.cc:
        Use add_status_to_global()
      sql/sql_class.h:
        Simplify adding local status to global by adding add_status_to_global()
      275b3d64
  2. 13 Feb, 2014 1 commit
    • Sergey Vojtovich's avatar
      MDEV-5089 - possible deadlocks between rwlocks and mutexes · deef4c11
      Sergey Vojtovich authored
      Pre-MDL versions had direct relationship between LOCK_open and
      LOCK_global_system_variables, e.g.:
        intern_sys_var_ptr // locks LOCK_global_system_variable
        mysql_sys_var_char
        create_options_are_valid
        ha_innobase::create
        handler::ha_create
        ha_create_table
        rea_create_table
        mysql_create_table_no_lock // locks LOCK_open
        mysql_create_table
      
      With MDL this relationship was removed, but mutex order was still
      recorded. In fact there is indirect relationship between LOCK_open
      and LOCK_global_system_variables via rwlocks in reverse order.
      
      Removed LOCK_open and LOCK_global_system_variables order recording,
      instead assert that LOCK_open is never held in intern_sys_var_ptr().
      
      This solves only one of many problems detected with MDEV-5089.
      deef4c11
  3. 11 Mar, 2014 5 commits
  4. 10 Mar, 2014 1 commit
    • Michael Widenius's avatar
      Fixed MDEV-5724 "Server crashes on SQL select containing more group by and... · 6c79532c
      Michael Widenius authored
      Fixed MDEV-5724 "Server crashes on SQL select containing more group by and left join statements using innodb tables"
        
      The problem was that a big record was allocated on the stack, which casued stack to run out.
        
      Fixed by using my_safe_alloca() instead of my_alloca() when allocating records.
      Now only records <= 16384 are allocated on the stack.
      
      mysql-test/r/stack-crash.result:
        Added test case
      mysql-test/t/stack-crash.test:
        Added test case
      storage/maria/ma_blockrec.c:
        Use my_safe_alloca() instead of my_alloca()
      storage/maria/ma_dynrec.c:
        Use my_safe_alloca() instead of my_alloca()
      storage/maria/maria_def.h:
        Added MARIA_MAX_RECORD_ON_STACK
      storage/maria/maria_pack.c:
        Use my_safe_alloca() instead of my_alloca()
      6c79532c
  5. 04 Mar, 2014 2 commits
  6. 27 Feb, 2014 2 commits
  7. 26 Feb, 2014 3 commits
  8. 24 Feb, 2014 1 commit
  9. 22 Feb, 2014 1 commit
  10. 21 Feb, 2014 2 commits
  11. 20 Feb, 2014 3 commits
  12. 19 Feb, 2014 9 commits
    • Sergei Golubchik's avatar
      MDEV-5609 create new test ssl certificates · 44652a6e
      Sergei Golubchik authored
      Use 20-year ssl certificates for mysql-test from RedHat patch
      44652a6e
    • Sergei Golubchik's avatar
      MDEV-5390 doesn't install on fedora if mysql is installed, part 2 · 51fd63a1
      Sergei Golubchik authored
      On fedora:
      1. provide/obsoleve mariadb-* packages
      2. MariaDB-common conflicts with mariadb-libs (on filesystem level),
         but does not provide or obsolete it.
      51fd63a1
    • Sergei Golubchik's avatar
      RPM: · 40dddf78
      Sergei Golubchik authored
      * readability fixes
      * CPackRPM wrapper to fix property leakage between components (cmake bug 13248)
      40dddf78
    • Sergei Golubchik's avatar
      increment and get the query_id atomically, otherwise two concurrent threads · 84668ee6
      Sergei Golubchik authored
      might end up having the same query id
      84668ee6
    • Sergei Golubchik's avatar
      MDEV-5529 Sync libmysqlclient.so symbol versioning across distributions · 8d8de58e
      Sergei Golubchik authored
      An attempt to introduce libmysqlclient.so symbol versioning that is
      compatible both with Debian and Fedora all versions: put all symbols into
      libmysqlclient_18 version node (as on Debian), but also put aliases of
      old symbols into libmysqlclient_16 version node (as on Fedora).
      
      Also use a linker script to create aliases of exported symbols, not
      rpm_support.cc source file.
      8d8de58e
    • Sergey Petrunya's avatar
      Backport the following from 5.5 to 5.3: · 07eea0f1
      Sergey Petrunya authored
      MDEV-4556 Server crashes in SEL_ARG::rb_insert with index_merge+index_merge_sort_union, FORCE INDEX
      - merge_same_index_scans() may put the same SEL_ARG tree in multiple result plans.
        make it call incr_refs() on the SEL_ARG trees that it does key_or() on, because 
        key_or(sel_arg_tree_1, sel_arg_tree_2) call may invalidate SEL_ARG trees pointed 
        by sel_arg_tree_1 and sel_arg_tree_2.
          
      07eea0f1
    • Sergey Petrunya's avatar
      Fix compile failure: · d0ba6642
      Sergey Petrunya authored
      In function ‘void* memset(void*, int, size_t)’,
          inlined from ‘void Lifo_buffer::set_buffer_space(uchar*, uchar*)’ at sql_lifo_buffer.h:70:5,
          inlined from ‘int DsMrr_impl::dsmrr_init(handler*, RANGE_SEQ_IF*, void*, uint, uint, HANDLER_BUFFER*)’ at multi_range_read.cc:895:62:
      /usr/include/i386-linux-gnu/bits/string3.h:82:32: error: call to ‘__warn_memset_zero_len’ declared with attribute warning: memset used with constant zero length parameter; this could be due to transposed parameters [-Werror]
      
      It was intentional that the buffer is set to zero length there.
      d0ba6642
    • Sergey Petrunya's avatar
      Add a debugger helper function that does this: · 6fb8099d
      Sergey Petrunya authored
      (gdb) p dbug_print_table_row(table)
        $33 = "SUBQUERY2_t1(col_int_key,col_varchar_nokey)=(7,c)"
      6fb8099d
    • Sergey Petrunya's avatar
      MDEV-5600: Wrong result on 2nd execution of PS depending on the length of the query · 3cf2197f
      Sergey Petrunya authored
      - Item_direct_view_ref didn't clear its pointer to item_equal in ::cleanup.
      - Some Item_direct_view_ref objects have statement lifetime (i.e. they
        survive across multiple EXECUTE commands). Item_equal objects live only for
        the duration of one EXECUTE. This caused Item_direct_view_ref to have a stale pointer,
        which could cause all sorts of effects. (In this bug's testcase it was pointing to
        the wrong Item_equal, causing wrong query result)
      - Fixed by doing what Item_field::cleanup() does - don't keep item_equal pointer value.
      - There is no testcase because the only testcase I've got is highly fragile (e.g. the
        bug will not show up if @@datadir is of the wrong length).
      3cf2197f
  13. 18 Feb, 2014 2 commits
  14. 17 Feb, 2014 7 commits