1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

BUG#11753923-SQL THREAD CRASHES ON DISK FULL

Problem:If Disk becomes full while writing into the binlog,
then the server instance hangs till someone frees the space.
After user frees up the disk space, mysql server crashes
with an assert (m_status != DA_EMPTY)

Analysis: wait_for_free_space is being called in an
infinite loop i.e., server instance will hang until
someone frees up the space. So there is no need to
set status bit in diagnostic area.

Fix: Replace my_error/my_printf_error with
sql_print_warning() which prints the warning in error log.
This commit is contained in:
Venkatesh Duggirala
2013-01-02 16:31:58 +05:30
parent f5f40badc5
commit c72f687f21
5 changed files with 47 additions and 6 deletions

View File

@ -128,6 +128,28 @@ int my_printf_error(uint error, const char *format, myf MyFlags, ...)
DBUG_RETURN((*error_handler_hook)(error, ebuff, MyFlags));
}
/*
Warning as printf
SYNOPSIS
my_printf_warning()
format> Format string
...> variable list
*/
void(*sql_print_warning_hook)(const char *format,...);
void my_printf_warning(const char *format, ...)
{
va_list args;
char wbuff[ERRMSGSIZE];
DBUG_ENTER("my_printf_warning");
DBUG_PRINT("my", ("Format: %s", format));
va_start(args,format);
(void) my_vsnprintf (wbuff, sizeof(wbuff), format, args);
va_end(args);
(*sql_print_warning_hook)(wbuff);
DBUG_VOID_RETURN;
}
/*
Give message using error_handler_hook