summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorSujatha Sivakumar <sujatha.sivakumar@oracle.com>2016-05-13 16:42:45 +0530
committerPrashant Tekriwal <prashant.tekriwal@oracle.com>2016-05-16 11:34:20 +0200
commitef3f09f0c9e62ea1bf86b33b5d97e954b3ae34fe (patch)
treee5e133ed139581968188e0800606ed0c9867f311 /mysys
parent9d72fb4af0d87f6a69a3ccb9202b4029acf2bd56 (diff)
downloadmariadb-git-ef3f09f0c9e62ea1bf86b33b5d97e954b3ae34fe.tar.gz
Bug#23251517: SEMISYNC REPLICATION HANGINGmysql-5.5.50
Revert following bug fix: Bug#20685029: SLAVE IO THREAD SHOULD STOP WHEN DISK IS FULL Bug#21753696: MAKE SHOW SLAVE STATUS NON BLOCKING IF IO THREAD WAITS FOR DISK SPACE This fix results in a deadlock between slave IO thread and SQL thread. (cherry picked from commit e3fea6c6dbb36c6ab21c4ab777224560e9608b53)
Diffstat (limited to 'mysys')
-rw-r--r--mysys/errors.c14
-rw-r--r--mysys/my_write.c8
2 files changed, 6 insertions, 16 deletions
diff --git a/mysys/errors.c b/mysys/errors.c
index b6064460535..a6e2e300a1f 100644
--- a/mysys/errors.c
+++ b/mysys/errors.c
@@ -15,7 +15,7 @@
#include "mysys_priv.h"
#include "mysys_err.h"
-#include "m_string.h"
+
#ifndef SHARED_LIBRARY
const char *globerrs[GLOBERRS]=
@@ -109,7 +109,6 @@ void init_glob_errs()
*/
void wait_for_free_space(const char *filename, int errors)
{
- size_t time_to_sleep= MY_WAIT_FOR_USER_TO_FIX_PANIC;
if (!(errors % MY_WAIT_GIVE_USER_A_MESSAGE))
{
my_printf_warning(EE(EE_DISK_FULL),
@@ -120,15 +119,10 @@ void wait_for_free_space(const char *filename, int errors)
}
DBUG_EXECUTE_IF("simulate_no_free_space_error",
{
- time_to_sleep= 1;
- });
- DBUG_EXECUTE_IF("simulate_io_thd_wait_for_disk_space",
- {
- time_to_sleep= 1;
+ (void) sleep(1);
+ return;
});
-
- (void) sleep(time_to_sleep);
- DEBUG_SYNC_C("disk_full_reached");
+ (void) sleep(MY_WAIT_FOR_USER_TO_FIX_PANIC);
}
const char **get_global_errmsgs()
diff --git a/mysys/my_write.c b/mysys/my_write.c
index 2e68a4dcff3..f092420756e 100644
--- a/mysys/my_write.c
+++ b/mysys/my_write.c
@@ -24,7 +24,6 @@ size_t my_write(File Filedes, const uchar *Buffer, size_t Count, myf MyFlags)
{
size_t writtenbytes, written;
uint errors;
- size_t ToWriteCount;
DBUG_ENTER("my_write");
DBUG_PRINT("my",("fd: %d Buffer: %p Count: %lu MyFlags: %d",
Filedes, Buffer, (ulong) Count, MyFlags));
@@ -38,14 +37,11 @@ size_t my_write(File Filedes, const uchar *Buffer, size_t Count, myf MyFlags)
{ DBUG_SET("+d,simulate_file_write_error");});
for (;;)
{
- ToWriteCount= Count;
- DBUG_EXECUTE_IF("simulate_io_thd_wait_for_disk_space", { ToWriteCount= 1; });
#ifdef _WIN32
- writtenbytes= my_win_write(Filedes, Buffer, ToWriteCount);
+ writtenbytes= my_win_write(Filedes, Buffer, Count);
#else
- writtenbytes= write(Filedes, Buffer, ToWriteCount);
+ writtenbytes= write(Filedes, Buffer, Count);
#endif
- DBUG_EXECUTE_IF("simulate_io_thd_wait_for_disk_space", { errno= ENOSPC; });
DBUG_EXECUTE_IF("simulate_file_write_error",
{
errno= ENOSPC;