summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorSujatha Sivakumar <sujatha.sivakumar@oracle.com>2016-05-13 16:42:45 +0530
committerSujatha Sivakumar <sujatha.sivakumar@oracle.com>2016-05-13 16:42:45 +0530
commitdf7ecf64f5b9c6fb4b7789a414306de89b58bec7 (patch)
tree795cd2d820ad193478404efdbd0ae6344d558bc8 /mysys
parent818b3a91231119663a95b854ab1e0e2d7a2d3feb (diff)
downloadmariadb-git-df7ecf64f5b9c6fb4b7789a414306de89b58bec7.tar.gz
Bug#23251517: SEMISYNC REPLICATION HANGING
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.
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;