mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Patch to eliminate some valgrind warnings in debug printout code.
(originally from Mats) sql/rpl_rli.cc: Adding variable to mark an instance of Relay_log_info as fake. sql/rpl_rli.h: Adding variable to mark an instance of Relay_log_info as fake. sql/slave.cc: Not printing debug information if we are working with a fake instance of Relay_log_info. This because the result of calling update is nonsense, and trying to print it generates valgrind warnings. sql/sql_binlog.cc: Marking newly created instance of Relay_log_info as a fake instance.
This commit is contained in:
parent
f1f2bd8c0d
commit
6f6fabb7f9
4 changed files with 25 additions and 9 deletions
|
@ -33,7 +33,10 @@ Relay_log_info::Relay_log_info()
|
|||
:Slave_reporting_capability("SQL"),
|
||||
no_storage(FALSE), replicate_same_server_id(::replicate_same_server_id),
|
||||
info_fd(-1), cur_log_fd(-1), save_temporary_tables(0),
|
||||
group_relay_log_pos(0),
|
||||
group_relay_log_pos(0), event_relay_log_pos(0),
|
||||
#if HAVE_purify
|
||||
is_fake(FALSE),
|
||||
#endif
|
||||
cur_log_old_open_count(0), group_master_log_pos(0), log_space_total(0),
|
||||
ignore_log_space_limit(0), last_master_timestamp(0), slave_skip_counter(0),
|
||||
abort_pos_wait(0), slave_run_id(0), sql_thd(0),
|
||||
|
|
|
@ -154,6 +154,10 @@ public:
|
|||
ulonglong event_relay_log_pos;
|
||||
ulonglong future_event_relay_log_pos;
|
||||
|
||||
#ifdef HAVE_purify
|
||||
bool is_fake; /* Mark that this is a fake relay log info structure */
|
||||
#endif
|
||||
|
||||
/*
|
||||
Original log name and position of the group we're currently executing
|
||||
(whose coordinates are group_relay_log_name/pos in the relay log)
|
||||
|
|
22
sql/slave.cc
22
sql/slave.cc
|
@ -1892,14 +1892,19 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli,
|
|||
if (exec_res == 0)
|
||||
{
|
||||
int error= ev->update_pos(rli);
|
||||
char buf[22];
|
||||
DBUG_PRINT("info", ("update_pos error = %d", error));
|
||||
DBUG_PRINT("info", ("group %s %s",
|
||||
llstr(rli->group_relay_log_pos, buf),
|
||||
rli->group_relay_log_name));
|
||||
DBUG_PRINT("info", ("event %s %s",
|
||||
llstr(rli->event_relay_log_pos, buf),
|
||||
rli->event_relay_log_name));
|
||||
#ifdef HAVE_purify
|
||||
if (!rli->is_fake)
|
||||
#endif
|
||||
{
|
||||
char buf[22];
|
||||
DBUG_PRINT("info", ("update_pos error = %d", error));
|
||||
DBUG_PRINT("info", ("group %s %s",
|
||||
llstr(rli->group_relay_log_pos, buf),
|
||||
rli->group_relay_log_name));
|
||||
DBUG_PRINT("info", ("event %s %s",
|
||||
llstr(rli->event_relay_log_pos, buf),
|
||||
rli->event_relay_log_name));
|
||||
}
|
||||
/*
|
||||
The update should not fail, so print an error message and
|
||||
return an error code.
|
||||
|
@ -1909,6 +1914,7 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli,
|
|||
*/
|
||||
if (error)
|
||||
{
|
||||
char buf[22];
|
||||
rli->report(ERROR_LEVEL, ER_UNKNOWN_ERROR,
|
||||
"It was not possible to update the positions"
|
||||
" of the relay log information: the slave may"
|
||||
|
|
|
@ -56,6 +56,9 @@ void mysql_client_binlog_statement(THD* thd)
|
|||
if (!thd->rli_fake)
|
||||
{
|
||||
thd->rli_fake= new Relay_log_info;
|
||||
#ifdef HAVE_purify
|
||||
thd->rli_fake->is_fake= TRUE;
|
||||
#endif
|
||||
have_fd_event= FALSE;
|
||||
}
|
||||
if (thd->rli_fake && !thd->rli_fake->relay_log.description_event_for_exec)
|
||||
|
|
Loading…
Reference in a new issue