Skip to content

Commit

Permalink
Fixed assert in WSREP if one started with --wsrep_provider=.. --wsrep…
Browse files Browse the repository at this point in the history
…_on=OFF

Assert was:
mariadbd: /my/maria-10.6/wsrep-lib/src/client_state.cpp:256:
int wsrep::client_state::after_statement(): Assertion `state() == s_exec'

The reason was because of two faults:
- A missing test for WSREP(thd) when checking wsrep_after_statement(()
- THD->wsrep_cs().state was set to s_idle instead of s_none
  • Loading branch information
montywi committed Apr 12, 2021
1 parent c03841e commit e14b682
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
5 changes: 3 additions & 2 deletions sql/sql_parse.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3781,7 +3781,8 @@ mysql_execute_command(THD *thd)
thd->transaction.stmt.mark_trans_did_ddl();
#ifdef WITH_WSREP
/* Clean up the previous transaction on implicit commit */
if (wsrep_thd_is_local(thd) && wsrep_after_statement(thd))
if (WSREP_NNULL(thd) && wsrep_thd_is_local(thd) &&
wsrep_after_statement(thd))
{
goto error;
}
Expand Down Expand Up @@ -3855,7 +3856,7 @@ mysql_execute_command(THD *thd)
Do not start transaction for stored procedures, it will be handled
internally in SP processing.
*/
if (WSREP(thd) &&
if (WSREP_NNULL(thd) &&
wsrep_thd_is_local(thd) &&
lex->sql_command != SQLCOM_BEGIN &&
lex->sql_command != SQLCOM_CALL &&
Expand Down
4 changes: 3 additions & 1 deletion sql/wsrep_trans_observer.h
Original file line number Diff line number Diff line change
Expand Up @@ -407,8 +407,10 @@ static inline void wsrep_after_apply(THD* thd)
static inline void wsrep_open(THD* thd)
{
DBUG_ENTER("wsrep_open");
if (WSREP_PROVIDER_EXISTS)
if (WSREP_ON_)
{
/* WSREP_PROVIDER_EXISTS_ cannot be set if WSREP_ON_ is not set */
DBUG_ASSERT(WSREP_PROVIDER_EXISTS_);
thd->wsrep_cs().open(wsrep::client_id(thd->thread_id));
thd->wsrep_cs().debug_log_level(wsrep_debug);
if (!thd->wsrep_applier && thd->variables.wsrep_trx_fragment_size)
Expand Down

0 comments on commit e14b682

Please sign in to comment.