• Sujatha Sivakumar's avatar
    Bug#14324766:PARTIALLY WRITTEN INSERT STATEMENT IN BINLOG · d054027c
    Sujatha Sivakumar authored
    NO ERRORS REPORTED
          
    Problem:
    =======
    Errors from my_b_fill are ignored. MYSQL_BIN_LOG::write_cache
    code assumes that 0 returned from my_b_fill always means
    end-of-cache, but that is incorrect. It can result in error
    and the error is ignored. Other callers of my_b_fill don't
    check for error: my_b_copy_to_file, maybe my_b_gets.
          
    Fix:
    ===
    An error handler is already present to check the "cache"
    error that is reported during "MYSQL_BIN_LOG::write_cache"
    call. Hence error handlers are added for "my_b_copy_to_file"
    and "my_b_gets".
    During my_b_fill() function call, when the cache read fails
    info->error= -1 is set. Hence a check for "info->error"
    is added for the above to callers upon their return.
    
    mysys/mf_iocache2.c:
      Added a check for "cache->error" and simulation of cache read failure
    mysys/my_read.c:
      Simulation of read failure
    sql/log_event.cc:
      Added debug simulation
    sql/sql_repl.cc:
      Added a check for cache error
    d054027c
my_read.c 3.26 KB