1. 06 Oct, 2009 2 commits
    • Alfranio Correia's avatar
      BUG#47678 Changes to n-tables that happen early in a trans. are only flushed upon commit · 7e0da435
      Alfranio Correia authored
        Let
          - T be a transactional table and N non-transactional table.
          - B be begin, C commit and R rollback.
          - N be a statement that accesses and changes only N-tables.
          - T be a statement that accesses and changes only T-tables.
      
      In RBR, changes to N-tables that happen early in a transaction are not immediately flushed
      upon committing a statement. This behavior may, however, break consistency in the presence
      of concurrency since changes done to N-tables become immediately visible to other
      connections. To fix this problem, we do the following:
      
        . B N N T C would log - B N C B N C B T C.
        . B N N T R would log - B N C B N C B T R.
      
      Note that we are not preserving history from the master as we are introducing a commit that
      never happened. However, this seems to be more acceptable than the possibility of breaking
      consistency in the presence of concurrency.
      7e0da435
    • Alfranio Correia's avatar
      BUG#47287 RBR: replication diff on basic case with txn- and non-txn tables in a statement · 14d19094
      Alfranio Correia authored
      Let
        - T be a transactional table and N non-transactional table.
        - B be begin, C commit and R rollback.
        - M be a mixed statement, i.e. a statement that updates both T and N.
        - M* be a mixed statement that fails while updating either T or N.
      
      This patch restore the behavior presented in 5.1.37 for rows either produced in
      the RBR or MIXED modes, when a M* statement that happened early in a transaction
      had their changes written to the binary log outside the boundaries of the
      transaction and wrapped in a BEGIN/ROLLBACK. This was done to keep the slave
      consistent with with the master as the rollback would keep the changes on N and
      undo them on T. In particular, we do what follows:
      
        . B M* T C would log - B M* R B T C.
      
      Note that, we are not preserving history from the master as we are introducing a
      rollback that never happened. However, this seems to be more acceptable than
      making the slave diverge. We do not fix the following case:
      
        . B T M* C would log B T M* C.
      
      The slave will diverge as the changes on T tables that originated from the M
      statement are rolled back on the master but not on the slave. Unfortunately, we
      cannot simply rollback the transaction as this would undo any uncommitted
      changes on T tables.
      
      SBR is not considered in this patch because a failing statement is written to
      the binary along with the error code and a slave executes and then rolls back
      the statement when it has an associated error code, thus undoing the effects
      on T. In RBR and MBR, a full-fledged fix will be pushed after the WL 2687.
      14d19094
  2. 28 Sep, 2009 2 commits
    • unknown's avatar
      BUG#43579 mysql_upgrade tries to alter log tables on replicated database · 96665fd9
      unknown authored
      All statements executed by mysql_upgrade are binlogged and then are replicated to slave.
      This will result in some errors. The report of this bug has demonstrated some examples.
      
      Master and slave should be upgraded separately. All statements executed by
      mysql_upgrade will not be binlogged. 
      --write-binlog and --skip-write-binlog options are added into mysql_upgrade. 
      These options control whether sql statements are binlogged or not. 
      96665fd9
    • unknown's avatar
      BUG #46572 DROP TEMPORARY table IF EXISTS does not have a consistent behavior in ROW mode · c6186a25
      unknown authored
            
      In RBR, 'DROP TEMPORARY TABLE IF EXISTS...' statement is binlogged when the table
      does not exist.
            
      In fact, 'DROP TEMPORARY TABLE ...' statement should never be binlogged in RBR
      no matter if the table exists or not. 
      This patch addresses this by checking whether we are dropping a
      temporary table or not, when building the custom drop statement.
      
      c6186a25
  3. 27 Sep, 2009 3 commits
    • Luis Soares's avatar
      BUG#47312: RBR: Disabling key on slave breaks replication: · 3d211f39
      Luis Soares authored
      HA_ERR_WRONG_INDEX
            
      In RBR, disabling keys on slave table will break replication when
      updating or deleting a record. When the slave thread tries to
      find the row, by searching in the storage engine, it checks
      whether the table has a key or not. If it has one, then the slave
      thread uses it to search the record.
            
      Nonetheless, the slave only checks whether the key exists or not,
      it does not verify if it is active. Should the key be
      disabled (eg, DBA has issued an ALTER TABLE ... DISABLE KEYS)
      then it will result in error: HA_ERR_WRONG_INDEX.
            
      This patch addresses this issue by making the slave thread also
      check whether the key is active or not before actually using it.
      3d211f39
    • unknown's avatar
      Bug #43913 rpl_cross_version can't pass on conflicts complainig clash with --slave-load-tm · 6368919f
      unknown authored
      The failure is not reproduced on 5.1, so enable the 'rpl_cross_version' test.
      
      mysql-test/suite/rpl/t/disabled.def:
        Got rid of the line for enabling 'rpl_cross_version' test.
      6368919f
    • unknown's avatar
      Bug #46931 rpl.rpl_get_master_version_and_clock fails on hpux11.31 · 09efe92a
      unknown authored
      Network error happened here, but it can be caused by CR_CONNECTION_ERROR, 
      CR_CONN_HOST_ERROR, CR_SERVER_GONE_ERROR, CR_SERVER_LOST, ER_CON_COUNT_ERROR, 
      and ER_SERVER_SHUTDOWN. We just check CR_SERVER_LOST here, so the test fails.
      
      To fix the problem, check all errors that can be cause by the master shutdown.
      
      mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test:
        Added a 'if' sentence to check all errors that can be cause by the master shutdown.
      mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result:
        Test result is updated duo to the patch of bug#46931
      09efe92a
  4. 25 Sep, 2009 4 commits
  5. 24 Sep, 2009 4 commits
  6. 23 Sep, 2009 9 commits
    • Staale Smedseng's avatar
      Bug #43414 Parenthesis (and other) warnings compiling MySQL · 6a89842e
      Staale Smedseng authored
      with gcc 4.3.2
      
      Cleaning up warnings not present in 5.0.
      6a89842e
    • Alexander Nozdrin's avatar
      A patch for Bug#47474 (mysqld hits Dbug_violation_helper assert · d4991387
      Alexander Nozdrin authored
      when compiled with Sun Studio compiler).
      
      The thing is that Sun Studio compiler calls destructor of stack
      objects when pthread_exit() is called. That triggered an assertion
      in DBUG_ENTER()/DBUG_RETURN() validation logic (if DBUG_ENTER() is
      used in the beginning of function, all returns should be replaced
      by DBUG_RETURN/DBUG_VOID_RETURN macros).
      
      A fix is to explicitly use DBUG_LEAVE macro.
      d4991387
    • Satya B's avatar
      merge to mysql-5.1-bugteam · e6afad88
      Satya B authored
      e6afad88
    • Satya B's avatar
      Additional Fix for BUG#44030 - Error: (1500) Couldn't read the MAX(ID) autoinc · 1eef7665
      Satya B authored
                                     value from the index (PRIMARY)
      
      
      With the fix for BUG#46760, we correctly flag the presence of row_type 
      only when it's actually changed and enables the FAST ALTER TABLE which was
      disabled with the BUG#39200.
      
      So the changes made by BUG#46760 makes MySQL data dictionaries to be out of 
      sync but they are handled already by InnoDB with this BUG#44030.
      
      The test was originally written to handle this but we requested Innodb to
      update the test as the data dictionaries were in sync after the fix for 
      BUG#39200.
      
      Adjusting the innodb-autoinc testcase as mentioned in the comments.
      
      mysql-test/lib/mtr_cases.pm:
        Re-enable the innodb-autoinc test case for plugin as we have a common
        result file.
      mysql-test/r/innodb-autoinc.result:
        Additional Fix for BUG#44030 - Error: (1500) Couldn't read the MAX(ID) autoinc 
                                       value from the index (PRIMARY)
        
        Adjust the innodb-autoinc testcase as the patch for BUG#46760 enables the 
        FAST ALTER TABLE and makes the data dictonaries go out of sync. This is 
        expected in the testcase.
      mysql-test/t/innodb-autoinc.test:
        Additional Fix for BUG#44030 - Error: (1500) Couldn't read the MAX(ID) autoinc 
                                       value from the index (PRIMARY)
        
        Adjust the innodb-autoinc testcase as the patch for BUG#46760 enables the 
        FAST ALTER TABLE and makes the data dictonaries go out of sync. This is 
        expected in the testcase.
      1eef7665
    • Georgi Kodinov's avatar
      automerge · 9a42d81f
      Georgi Kodinov authored
      9a42d81f
    • Sergey Glukhov's avatar
      Bug#45989 memory leak after explain encounters an error in the query · beb519e3
      Sergey Glukhov authored
      the fix is reverted from 5.1, mysql-pe as 
      unnecessary(no valgrind warnings there).
      
      sql/sql_select.cc:
        the fix is reverted from 5.1, mysql-pe as 
        unnecessary(no valgrind warnings there).
      beb519e3
    • Georgi Kodinov's avatar
      automerge · 9910148c
      Georgi Kodinov authored
      9910148c
    • Georgi Kodinov's avatar
      automerge · 4f2949b8
      Georgi Kodinov authored
      4f2949b8
    • Georgi Kodinov's avatar
      automerge · 8705b0e1
      Georgi Kodinov authored
      8705b0e1
  7. 22 Sep, 2009 2 commits
    • Davi Arnaut's avatar
      Bug#45498: Socket variable not available on Windows · 83bc7980
      Davi Arnaut authored
      The "socket" variable is not available on Windows even though
      the --socket option can be used to specify the pipe name for
      local connections that use a named pipe.
      
      The solution is to ensure that the variable is always defined.
      
      
      mysql-test/r/windows.result:
        Add test case result for Bug#45498
      mysql-test/t/windows.test:
        Add test case for Bug#45498
      sql/set_var.cc:
        socket variable must always be present.
      83bc7980
    • Anurag Shekhar's avatar
      merged with local branch. · fe0437d3
      Anurag Shekhar authored
      fe0437d3
  8. 21 Sep, 2009 3 commits
  9. 18 Sep, 2009 9 commits
    • Georgi Kodinov's avatar
      automerge · 6435ecbb
      Georgi Kodinov authored
      6435ecbb
    • Georgi Kodinov's avatar
      automerge · 4ac69482
      Georgi Kodinov authored
      4ac69482
    • Georgi Kodinov's avatar
      automerge · 3df67bc2
      Georgi Kodinov authored
      3df67bc2
    • Georgi Kodinov's avatar
      automerge · 50800923
      Georgi Kodinov authored
      50800923
    • Georgi Kodinov's avatar
      Bug#46760: Fast ALTER TABLE no longer works for InnoDB · 01e5bc70
      Georgi Kodinov authored
            
      Despite copying the value of the old table's row type
      we don't always have to mark row type as being specified.
      Innodb uses this to check if it can do fast ALTER TABLE
      or not.
      Fixed by correctly flagging the presence of row_type 
      only when it's actually changed.
      Added a test case for 39200.
      01e5bc70
    • Anurag Shekhar's avatar
      merging with latest changes in bugteam. · f2f2e981
      Anurag Shekhar authored
      f2f2e981
    • unknown's avatar
      Bug #42914 Log event that larger than max_allowed_packet results in stop of slave I/O thread, · 64badb5f
      unknown authored
                 But there is no Last_IO_Error reported.
      
      On the master, if a binary log event is larger than max_allowed_packet,
      ER_MASTER_FATAL_ERROR_READING_BINLOG and the specific reason of this error is
      sent to a slave when it requests a dump from the master, thus leading
      the I/O thread to stop.
      
      On a slave, the I/O thread stops when receiving a packet larger than max_allowed_packet.
      
      In both cases, however, there was no Last_IO_Error reported.
      
      This patch adds code to report the Last_IO_Error and exact reason before stopping the
      I/O thread and also reports the case the out memory pops up while
      handling packets from the master.
      
      
      sql/sql_repl.cc:
        The master send the Specific reasons instead of "error reading log entry" to the slave which is requesting a dump.
        if an fatal error is returned by read_log_event function.
      64badb5f
    • Alexey Kopytov's avatar
      Automerge. · ce55f84d
      Alexey Kopytov authored
      ce55f84d
    • Alexey Kopytov's avatar
      Bug #43606: 4GB Limit on huge_pages shared memory set-up · 4826b61c
      Alexey Kopytov authored
      Large pages allocator could not allocate more than 4 GB due to
      incorrect size alignment.
      
      mysys/my_largepage.c:
        Large pages allocator could not allocate more than 4 GB due to
        incorrect size alignment.
      4826b61c
  10. 17 Sep, 2009 2 commits