1. 03 Feb, 2010 1 commit
    • Luis Soares's avatar
      BUG#50364: FLUSH LOGS crashes the server (rpl.rpl_heartbeat_basic · d0ffa8e5
      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.
      d0ffa8e5
  2. 30 Jan, 2010 2 commits
    • 's avatar
      Auto Merge fix for bug#50157 · da88c90a
      authored
      da88c90a
    • 's avatar
      BUG#50157 Assertion !active_tranxs_->is_tranx_end_pos(..) in ReplSemiSyncMaster::commitTrx · 85589577
      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.
      85589577
  3. 24 Dec, 2009 2 commits
  4. 23 Dec, 2009 3 commits
    • Alexander Nozdrin's avatar
      Fix default.conf. · 97412d1d
      Alexander Nozdrin authored
      97412d1d
    • Alexander Nozdrin's avatar
      Backporting fix for Bug#49834 from mysql-next-mr-bugfixing · 84caa948
      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
      ------------------------------------------------------------
      84caa948
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk. · 29f54b41
      Alexander Nozdrin authored
      29f54b41
  5. 22 Dec, 2009 3 commits
  6. 21 Dec, 2009 4 commits
  7. 19 Dec, 2009 3 commits
  8. 18 Dec, 2009 1 commit
  9. 17 Dec, 2009 12 commits
  10. 16 Dec, 2009 9 commits