• vasil's avatar
    branches/zip: Merge r6152:6159 from branches/5.1: · 65d21143
    vasil authored
    (r6158 was skipped as an equivallent change has already been merged from MySQL)
    
      ------------------------------------------------------------------------
      r6154 | calvin | 2009-11-11 02:51:17 +0200 (Wed, 11 Nov 2009) | 17 lines
      Changed paths:
         M /branches/5.1/include/os0file.h
         M /branches/5.1/os/os0file.c
      
      branches/5.1: fix bug#3139: Mysql crashes: 'windows error 995'
      after several selects on a large DB
      
      During stress environment, Windows AIO may fail with error code
      ERROR_OPERATION_ABORTED. InnoDB does not handle the error, rather
      crashes. The cause of the error is unknown, but likely due to
      faulty hardware or driver.
      
      This patch introduces a new error code OS_FILE_OPERATION_ABORTED,
      which maps to Windows ERROR_OPERATION_ABORTED (995). When the error
      is detected during AIO, the InnoDB will issue a synchronous retry
      (read/write).
      
      This patch has been extensively tested by MySQL support.
      
      Approved by: Marko
      rb://196
      ------------------------------------------------------------------------
      r6158 | vasil | 2009-11-11 14:52:14 +0200 (Wed, 11 Nov 2009) | 37 lines
      Changed paths:
         M /branches/5.1/handler/ha_innodb.cc
         M /branches/5.1/handler/ha_innodb.h
      
      branches/5.1:
      
      Merge a change from MySQL:
      (this has been reviewed by Calvin and Marko, and Calvin says Luis has
      incorporated Marko's suggestions)
      
        ------------------------------------------------------------
        revno: 3092.5.1
        committer: Luis Soares <luis.soares@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Thu 2009-09-24 15:52:52 +0100
        message:
          BUG#42829: binlogging enabled for all schemas regardless of
          binlog-db-db / binlog-ignore-db
                
          InnoDB will return an error if statement based replication is used
          along with transaction isolation level READ-COMMITTED (or weaker),
          even if the statement in question is filtered out according to the
          binlog-do-db rules set. In this case, an error should not be printed.
                
          This patch addresses this issue by extending the existing check in
          external_lock to take into account the filter rules before deciding to
          print an error. Furthermore, it also changes decide_logging_format to
          take into consideration whether the statement is filtered out from 
          binlog before decision is made.
        added:
          mysql-test/suite/binlog/r/binlog_stm_do_db.result
          mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
          mysql-test/suite/binlog/t/binlog_stm_do_db.test
        modified:
          sql/sql_base.cc
          sql/sql_class.cc
          storage/innobase/handler/ha_innodb.cc
          storage/innobase/handler/ha_innodb.h
          storage/innodb_plugin/handler/ha_innodb.cc
          storage/innodb_plugin/handler/ha_innodb.h
      
      ------------------------------------------------------------------------
    65d21143
os0file.h 29.4 KB