1. 04 Feb, 2010 3 commits
    • He Zhenxing's avatar
      Auto merge · fce74722
      He Zhenxing authored
      fce74722
    • He Zhenxing's avatar
      Auto merge from 5.1-rep-semisync · c879ed2e
      He Zhenxing authored
      c879ed2e
    • He Zhenxing's avatar
      Bug#49894 shifted MYSQL_REPLICATION_PLUGIN number · 6ad93ebb
      He Zhenxing authored
      The number for MYSQL_REPLICATION_PLUGIN was shifted when backporting
      because MYSQL_AUDIT_PLUGIN was not backported.
      
      This problem is fixed by backporting only the number of audit plugin
      and print an error when trying to load audit plugins. Note that
      replication plugins compiled against old MYSQL_REPLICATION_PLUGIN
      number will also be recognized as audit plugin and be rejected.
      
      include/mysql/plugin.h:
        backporting the number of audit plugin (MYSQL_AUDIT_PLUGIN)
      sql/sql_plugin.cc:
        backporting the number of audit plugin (MYSQL_AUDIT_PLUGIN)
        print an error when trying to load audit plugins
      6ad93ebb
  2. 03 Feb, 2010 1 commit
    • Luis Soares's avatar
      BUG#50364: FLUSH LOGS crashes the server (rpl.rpl_heartbeat_basic · 55aab082
      Luis Soares authored
      fails in PB sporadically)
            
      The IO thread can concurrently access the relay log IO_CACHE
      while another thread is performing an FLUSH LOGS procedure.
            
      FLUSH LOGS closes and reopens the relay log and while doing so it
      (re)initializes its IO_CACHE. During this procedure the IO_CACHE
      mutex is also reinitialized, which can cause problems if some
      other thread (namely the IO THREAD) is concurrently accessing it
      at the time .
            
      This patch fixes the problem by extending the interface of the
      flush_master_info function to also include a second paramater, 
      "need_relay_log_lock", stating whether the thread should grab the 
      relay log lock or not before actually flushing the relay log. 
      Also, IO thread now calls flush_master_info with this flag set 
      when it flushes master info with in the event read_event loop.
      
      Finally, we also increase loop time in rpl_heartbeat_basic test 
      case, so that the number of calls to flush logs doubles, stressing
      this part of the code a little more.
      
      mysql-test/suite/rpl/t/rpl_heartbeat_basic.test:
        Doubled the number of iterations on the FLUSH LOGS loop by
        doubling the time available to perform all iterations.
      sql/repl_failsafe.cc:
        Updating flush_master_info call so that it uses two parameters
        instead of one.
      sql/rpl_mi.cc:
        Updating flush_master_info call so that it uses two parameters
        instead of one.
      sql/rpl_mi.h:
        Changed flush_master_info interface. Now takes a second parameter
        instead of just one. The second parameter is: need_lock_relay_log.
      sql/rpl_rli.cc:
        Small fix in comment.
      sql/slave.cc:
        Updating flush_master_info call so that it uses two parameters
        instead of one.
      sql/sql_repl.cc:
        Updating flush_master_info call so that it uses two parameters
        instead of one.
      55aab082
  3. 30 Jan, 2010 2 commits
    • unknown's avatar
      Auto Merge fix for bug#50157 · 54fc7997
      unknown authored
      54fc7997
    • unknown's avatar
      BUG#50157 Assertion !active_tranxs_->is_tranx_end_pos(..) in ReplSemiSyncMaster::commitTrx · a1bfae20
      unknown authored
      The root cause of the crash is that a TranxNode is freed before it is used.
      A TranxNode is allocated and inserted into the active list each time 
      a log event is written and flushed into the binlog file. 
      The memory for TranxNode is allocated with thd_alloc and will be freed 
      at the end of the statement. The after_commit/after_rollback callback
      was supposed to be called before the end of each statement and remove the node from
      the active list. However this assumption is not correct in all cases(e.g. call 
      'CREATE TEMPORARY TABLE myisam_t SELECT * FROM innodb_t' in a transaction
       and delete all temporary tables automatically when a session closed), 
      and can cause the memory allocated for TranxNode be freed
      before it was removed from the active list. So The TranxNode pointer in the active
      list would become a wild pointer and cause the crash.
      
      After this patch, We have a class called a TranxNodeAllocate which manages the memory
      for allocating and freeing TranxNode. It uses my_malloc to allocate memory.
      
      
      sql/rpl_handler.cc:
        params are not initialized.
      a1bfae20
  4. 24 Dec, 2009 2 commits
  5. 23 Dec, 2009 3 commits
    • Alexander Nozdrin's avatar
      Fix default.conf. · 5be5b55f
      Alexander Nozdrin authored
      5be5b55f
    • Alexander Nozdrin's avatar
      Backporting fix for Bug#49834 from mysql-next-mr-bugfixing · ba60b39c
      Alexander Nozdrin authored
      into mysql-trunk-bugfixing.
      
      Original revision:
      ------------------------------------------------------------
      revision-id: vvaintroub@mysql.com-20091222115311-bam0xorumd8gvjyo
      parent: mattias.jonsson@sun.com-20091221104426-x2e6c93x8iik4fo0
      committer: Vladislav Vaintroub <vvaintroub@mysql.com>
      branch nick: mysql-next-mr-bugfixing
      timestamp: Tue 2009-12-22 12:53:11 +0100
      message:
        Bug#49834 - fixed a bug introduced by mismerge.
        restore original innobase version
      ------------------------------------------------------------
      ba60b39c
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk. · a987a27d
      Alexander Nozdrin authored
      a987a27d
  6. 22 Dec, 2009 3 commits
  7. 21 Dec, 2009 4 commits
  8. 19 Dec, 2009 3 commits
  9. 18 Dec, 2009 1 commit
  10. 17 Dec, 2009 12 commits
    • Mikael Ronstrom's avatar
      BUG#49591, Fixed version string in SHOW CREATE TABLE to accomodate for column... · 7548f142
      Mikael Ronstrom authored
      BUG#49591, Fixed version string in SHOW CREATE TABLE to accomodate for column list partitioning and new function to_seconds
      7548f142
    • Alexey Kopytov's avatar
    • Alfranio Correia's avatar
      b1090b13
    • Alexey Kopytov's avatar
      5069a666
    • Andrei Elkin's avatar
      merge from 5.0 with bug@49740 fixes · 709f49cb
      Andrei Elkin authored
      709f49cb
    • Andrei Elkin's avatar
      Bug #49740 rpl.rpl_temporary fails in PB2 in mysql-trunk-merge · 522c0846
      Andrei Elkin authored
      The test allowed random coincidence of connection ids for two concurrent
      sessions performing CREATE/DROP temp tables.
      
      Fixed with correcting the test. The sessions connection ids are not changed
      from their defaults anymore.
      522c0846
    • Satya B's avatar
      merge to mysql-5.1-bugteam · 5db5e19a
      Satya B authored
      5db5e19a
    • Satya B's avatar
      merge mysql-5.0-bugteam to mysql-5.1-bugteam · bbf079cf
      Satya B authored
      bbf079cf
    • Satya B's avatar
      Fix for Bug#37408 - Compressed MyISAM files should not require/use mmap() · cf9966f8
      Satya B authored
                        
      When compressed myisam files are opened, they are always memory mapped
      sometimes causing memory swapping problems.
      
      When we mmap the myisam compressed tables of size greater than the memory 
      available, the kswapd0 process utilization is very high consuming 30-40% of 
      the cpu. This happens only with linux kernels older than 2.6.9
      
      With newer linux kernels, we don't have this problem of high cpu consumption
      and this option may not be required.
       
      The option 'myisam_mmap_size' is added to limit the amount of memory used for
      memory mapping of myisam files. This option is not dynamic.
      
      The default value on 32 bit system is 4294967295 bytes and on 64 bit system it
      is 18446744073709547520 bytes.
      
      Note: Testcase only tests the option variable. The actual bug has be to 
      tested manually.
      
      include/my_global.h:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        define SIZE_T_MAX
      include/myisam.h:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        declare 'myisam_mmap_size' and 'myisam_mmap_used' variables and the mutex
        THR_LOCK_myisam_mmap
      myisam/mi_packrec.c:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        add 'myisam_mmap_size' option which limits the memory available to mmap of 
        myisam files
      myisam/mi_static.c:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        declare 'myisam_mmap_size' and 'myisam_mmap_used' variables and the mutex
        THR_LOCK_myisam_mmap
      myisam/myisamdef.h:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        move MEMMAP_EXTRA_MARGIN to myisam.h so that it can be used in mysqld.cc
      mysql-test/r/variables.result:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        Testcase for BUG#37408 to test the myisam_mmap_size option
      mysql-test/t/variables.test:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        Testcase for BUG#37408 to test the myisam_mmap_size option
      mysys/my_thr_init.c:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        intialize the lock THR_LOCK_myisam_mmap
      sql/mysqld.cc:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        add the 'myisam_mmap_size' option
      sql/set_var.cc:
        Fix for Bug #37408 - Compressed MyISAM files should not require/use mmap()
        
        add the 'myisam_mmap_size' to the SHOW VARIABLES list
      cf9966f8
    • Martin Hansson's avatar
      Bug#47650: using group by with rollup without indexes · 6863f7dc
      Martin Hansson authored
      returns incorrect results with where
      
      An outer join of a const table (outer) and a normal table
      (inner) with GROUP BY on a field from the outer table would
      optimize away GROUP BY, and thus trigger the optimization to
      do away with a temporary table if grouping was performed on
      columns from the const table, hence executing the query with
      filesort without temporary table. But this should not be
      done if there is a non-indexed access to the inner table,
      since filesort does not handle joins. It expects either ref
      access, range ditto or table scan. The join condition will
      thus not be applied.
      
      Fixed by always forcing execution with temporary table in
      the case of ROLLUP with a query involving an outer join. This
      is a slightly broader class of queries than need fixing, but
      it is hard to ascertain the position of a ROLLUP field wrt
      outer join with current query representation.
      
      mysql-test/r/join_outer.result:
        Bug#47650: Test result
      mysql-test/t/join_outer.test:
        Bug#47650: Test case
      sql/sql_select.cc:
        Bug#47650: Fix
      6863f7dc
    • Ramil Kalimullin's avatar
      Auto-merge. · 4621d480
      Ramil Kalimullin authored
      4621d480
    • Ramil Kalimullin's avatar
      Fix for bug#49465: valgrind warnings and incorrect live checksum... · 06be03f7
      Ramil Kalimullin authored
      Problem: inserting a record we don't set unused null bits in the
      record buffer if no default field values used.
      That may lead to wrong live checksum calculation.
      
      Fix: set unused null bits in the record buffer in such cases.
      
      
      mysql-test/r/myisam.result:
        Fix for bug#49465: valgrind warnings and incorrect live checksum...
          - test result.
      mysql-test/t/myisam.test:
        Fix for bug#49465: valgrind warnings and incorrect live checksum...
          - test case.
      sql/sql_insert.cc:
        Fix for bug#49465: valgrind warnings and incorrect live checksum...
          - set unused null bits to 1 in the record buffer in case we
        don't call restore_record() before a fill_record() call
        (when no default values used).
      06be03f7
  11. 16 Dec, 2009 6 commits