1. 14 Mar, 2014 1 commit
    • Michael Widenius's avatar
      MDEV-5829: STOP SLAVE resets global status variables · dd13db6f
      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()
      dd13db6f
  2. 13 Feb, 2014 1 commit
    • Sergey Vojtovich's avatar
      MDEV-5089 - possible deadlocks between rwlocks and mutexes · bde11c1a
      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.
      bde11c1a
  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... · 599eb0dc
      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()
      599eb0dc
  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 · 62f35523
      Sergei Golubchik authored
      Use 20-year ssl certificates for mysql-test from RedHat patch
      62f35523
    • Sergei Golubchik's avatar
      MDEV-5390 doesn't install on fedora if mysql is installed, part 2 · d81d13f1
      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.
      d81d13f1
    • Sergei Golubchik's avatar
      RPM: · de8f29bd
      Sergei Golubchik authored
      * readability fixes
      * CPackRPM wrapper to fix property leakage between components (cmake bug 13248)
      de8f29bd
    • Sergei Golubchik's avatar
      increment and get the query_id atomically, otherwise two concurrent threads · 11d27996
      Sergei Golubchik authored
      might end up having the same query id
      11d27996
    • Sergei Golubchik's avatar
      MDEV-5529 Sync libmysqlclient.so symbol versioning across distributions · afcd7091
      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.
      afcd7091
    • Sergey Petrunya's avatar
      Backport the following from 5.5 to 5.3: · 6ebaa493
      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.
          
      6ebaa493
    • Sergey Petrunya's avatar
      Fix compile failure: · ddc21f79
      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.
      ddc21f79
    • Sergey Petrunya's avatar
      Add a debugger helper function that does this: · 260c802e
      Sergey Petrunya authored
      (gdb) p dbug_print_table_row(table)
        $33 = "SUBQUERY2_t1(col_int_key,col_varchar_nokey)=(7,c)"
      260c802e
    • Sergey Petrunya's avatar
      MDEV-5600: Wrong result on 2nd execution of PS depending on the length of the query · 097b6440
      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).
      097b6440
  13. 18 Feb, 2014 2 commits
  14. 17 Feb, 2014 7 commits