diff options
author | Sujatha Sivakumar <sujatha.sivakumar@oracle.com> | 2013-03-28 14:18:51 +0530 |
---|---|---|
committer | Sujatha Sivakumar <sujatha.sivakumar@oracle.com> | 2013-03-28 14:18:51 +0530 |
commit | 9a1d651b0e905c5bd3bbb2d8bb68a95511a9a979 (patch) | |
tree | 924361342b42d301d8cdc1a60c902782b44c7961 | |
parent | af0e25725e69ad5a2671bb54db2e85dfa1dd770f (diff) | |
parent | d054027c4bfabdfa1cdbb58ee9aa34557eacbb45 (diff) | |
download | mariadb-git-9a1d651b0e905c5bd3bbb2d8bb68a95511a9a979.tar.gz |
Merge from mysql-5.1 to mysql-5.5
-rw-r--r-- | mysys/mf_iocache2.c | 6 | ||||
-rw-r--r-- | mysys/my_read.c | 9 | ||||
-rw-r--r-- | sql/log_event.cc | 2 | ||||
-rw-r--r-- | sql/sql_repl.cc | 2 |
4 files changed, 17 insertions, 2 deletions
diff --git a/mysys/mf_iocache2.c b/mysys/mf_iocache2.c index 6339532fa16..6790489e786 100644 --- a/mysys/mf_iocache2.c +++ b/mysys/mf_iocache2.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -63,6 +63,8 @@ my_b_copy_to_file(IO_CACHE *cache, FILE *file) DBUG_RETURN(1); cache->read_pos= cache->read_end; } while ((bytes_in_cache= my_b_fill(cache))); + if(cache->error == -1) + DBUG_RETURN(1); DBUG_RETURN(0); } @@ -219,6 +221,8 @@ size_t my_b_fill(IO_CACHE *info) info->error= 0; return 0; /* EOF */ } + DBUG_EXECUTE_IF ("simulate_my_b_fill_error", + {DBUG_SET("+d,simulate_file_read_error");}); if ((length= my_read(info->file,info->buffer,max_length, info->myflags)) == (size_t) -1) { diff --git a/mysys/my_read.c b/mysys/my_read.c index ca5fbfaeef6..680e13b8391 100644 --- a/mysys/my_read.c +++ b/mysys/my_read.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -49,6 +49,13 @@ size_t my_read(File Filedes, uchar *Buffer, size_t Count, myf MyFlags) #else readbytes= read(Filedes, Buffer, Count); #endif + DBUG_EXECUTE_IF ("simulate_file_read_error", + { + errno= ENOSPC; + readbytes= (size_t) -1; + DBUG_SET("-d,simulate_file_read_error"); + DBUG_SET("-d,simulate_my_b_fill_error"); + }); if (readbytes != Count) { diff --git a/sql/log_event.cc b/sql/log_event.cc index 4db1893b1cb..d2682a3eb9e 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -9393,6 +9393,8 @@ Write_rows_log_event::do_exec_row(const Relay_log_info *const rli) #ifdef MYSQL_CLIENT void Write_rows_log_event::print(FILE *file, PRINT_EVENT_INFO* print_event_info) { + DBUG_EXECUTE_IF("simulate_cache_read_error", + {DBUG_SET("+d,simulate_my_b_fill_error");}); Rows_log_event::print_helper(file, print_event_info, "Write_rows"); } #endif diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 0eb6142090c..0ccabfe74e7 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -2004,6 +2004,8 @@ bool show_binlogs(THD* thd) if (protocol->write()) goto err; } + if(index_file->error == -1) + goto err; mysql_bin_log.unlock_index(); my_eof(thd); DBUG_RETURN(FALSE); |