summaryrefslogtreecommitdiff
path: root/EXCEPTIONS-CLIENT
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2018-06-13 23:37:09 +0400
committerAlexander Barkov <bar@mariadb.com>2018-06-13 23:37:09 +0400
commit23ced2f846c6a8b9b303c1365780999888fa438f (patch)
tree784b54cf8b2bc691f94ed9158ff990852f916dff /EXCEPTIONS-CLIENT
parent8662015c90718501d504f4c7aeb94b8626902a9c (diff)
downloadmariadb-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 'EXCEPTIONS-CLIENT')
0 files changed, 0 insertions, 0 deletions