diff options
author | Alexander Barkov <bar@mariadb.com> | 2018-06-13 23:37:09 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2018-06-13 23:37:09 +0400 |
commit | 23ced2f846c6a8b9b303c1365780999888fa438f (patch) | |
tree | 784b54cf8b2bc691f94ed9158ff990852f916dff /BUILD/compile-pentium64-gcov | |
parent | 8662015c90718501d504f4c7aeb94b8626902a9c (diff) | |
download | mariadb-git-23ced2f846c6a8b9b303c1365780999888fa438f.tar.gz |
MDEV-16311 Server crash when using a NAME_CONST() with a CURSOR
Problem:
The problem was most likely introduced by a fix for MDEV-11597
(commit 5f0c31f928338e8a6ffde098b7ffd3d1a8b02903) which removed
the assignment "killed= KILL_BAD_DATA" from THD::raise_condition().
Before MDEV-11597, sp_head::execute() tested thd->killed after
looping through the SP instructions and exited with an error
if thd->killed is set. After MDEV-11597, sp_head::execute()
stopped to notice errors and set the OK status on top of the
error status, which crashed on assert.
Fix:
Making sp_cursor::fetch() return -1 if server_side_cursor->fetch(1)
left an error in the diagnostics area. This makes the statement
"err_status= i->execute(thd, &ip)" in sp_head::execute() set the
error code and correctly break the SP instruction loop and
return on error without setting the OK status.
Diffstat (limited to 'BUILD/compile-pentium64-gcov')
0 files changed, 0 insertions, 0 deletions