Commit 34853fa7 authored by Daniele Sciascia's avatar Daniele Sciascia Committed by Jan Lindström

MW-86 Additional wsrep_sync_wait coverage

The following commands are now subject to wsrep_sync_wait
with bitmask value 8:

SHOW BINARY LOGS
SHOW BINLOG EVENTS
SHOW GRANTS
Signed-off-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
parent a8261177
...@@ -2502,7 +2502,6 @@ mysql_execute_command(THD *thd) ...@@ -2502,7 +2502,6 @@ mysql_execute_command(THD *thd)
case SQLCOM_SHOW_COLLATIONS: case SQLCOM_SHOW_COLLATIONS:
case SQLCOM_SHOW_STORAGE_ENGINES: case SQLCOM_SHOW_STORAGE_ENGINES:
case SQLCOM_SHOW_PROFILE: case SQLCOM_SHOW_PROFILE:
WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW);
case SQLCOM_SHOW_CLIENT_STATS: case SQLCOM_SHOW_CLIENT_STATS:
case SQLCOM_SHOW_USER_STATS: case SQLCOM_SHOW_USER_STATS:
case SQLCOM_SHOW_TABLE_STATS: case SQLCOM_SHOW_TABLE_STATS:
...@@ -2510,8 +2509,10 @@ mysql_execute_command(THD *thd) ...@@ -2510,8 +2509,10 @@ mysql_execute_command(THD *thd)
case SQLCOM_SELECT: case SQLCOM_SELECT:
{ {
#ifdef WITH_WSREP #ifdef WITH_WSREP
if (lex->sql_command == SQLCOM_SELECT) if (lex->sql_command == SQLCOM_SELECT)
WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_READ); WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_READ)
else
WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW)
#endif /* WITH_WSREP */ #endif /* WITH_WSREP */
thd->status_var.last_query_cost= 0.0; thd->status_var.last_query_cost= 0.0;
...@@ -2635,6 +2636,7 @@ case SQLCOM_PREPARE: ...@@ -2635,6 +2636,7 @@ case SQLCOM_PREPARE:
case SQLCOM_SHOW_RELAYLOG_EVENTS: /* fall through */ case SQLCOM_SHOW_RELAYLOG_EVENTS: /* fall through */
case SQLCOM_SHOW_BINLOG_EVENTS: case SQLCOM_SHOW_BINLOG_EVENTS:
{ {
WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW);
if (check_global_access(thd, REPL_SLAVE_ACL)) if (check_global_access(thd, REPL_SLAVE_ACL))
goto error; goto error;
res = mysql_show_binlog_events(thd); res = mysql_show_binlog_events(thd);
...@@ -3061,6 +3063,7 @@ case SQLCOM_PREPARE: ...@@ -3061,6 +3063,7 @@ case SQLCOM_PREPARE:
{ {
if (check_global_access(thd, SUPER_ACL | REPL_CLIENT_ACL)) if (check_global_access(thd, SUPER_ACL | REPL_CLIENT_ACL))
goto error; goto error;
WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW);
res = show_binlogs(thd); res = show_binlogs(thd);
break; break;
} }
...@@ -4163,6 +4166,7 @@ case SQLCOM_PREPARE: ...@@ -4163,6 +4166,7 @@ case SQLCOM_PREPARE:
!strcmp(thd->security_ctx->priv_user, grant_user->user.str)) || !strcmp(thd->security_ctx->priv_user, grant_user->user.str)) ||
!check_access(thd, SELECT_ACL, "mysql", NULL, NULL, 1, 0)) !check_access(thd, SELECT_ACL, "mysql", NULL, NULL, 1, 0))
{ {
WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW);
res = mysql_show_grants(thd, grant_user); res = mysql_show_grants(thd, grant_user);
} }
break; break;
......
...@@ -219,8 +219,8 @@ inline bool is_supported_parser_charset(CHARSET_INFO *cs) ...@@ -219,8 +219,8 @@ inline bool is_supported_parser_charset(CHARSET_INFO *cs)
wsrep_to_isolation_end(thd); wsrep_to_isolation_end(thd);
#define WSREP_SYNC_WAIT(thd_, before_) \ #define WSREP_SYNC_WAIT(thd_, before_) \
if (WSREP_CLIENT(thd_) && \ { if (WSREP_CLIENT(thd_) && \
wsrep_sync_wait(thd_, before_)) goto error; wsrep_sync_wait(thd_, before_)) goto error; }
#else #else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment