MDEV-35946 Assertion `thd->is_error()' failed in Sql_cmd_dml::prepare

Fix a regression that caused assertion thd->is_error() after
sync wait failures. If wsrep_sync_wait() fails make sure a appropriate
error is set. Partially revert 75dd0246f8.

Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
This commit is contained in:
Daniele Sciascia 2025-01-30 10:10:39 +01:00 committed by Julius Goryavsky
commit 10fd2c207a
3 changed files with 63 additions and 1 deletions

View file

@ -1231,7 +1231,12 @@ bool wsrep_sync_wait (THD* thd, uint mask)
This allows autocommit SELECTs and a first SELECT after SET AUTOCOMMIT=0
TODO: modify to check if thd has locked any rows.
*/
return thd->wsrep_cs().sync_wait(-1);
if (thd->wsrep_cs().sync_wait(-1))
{
wsrep_override_error(thd, thd->wsrep_cs().current_error(),
thd->wsrep_cs().current_error_status());
return true;
}
}
return false;