Commit 8fd9e920 authored by Nisha Gopalakrishnan's avatar Nisha Gopalakrishnan

BUG#16207679: MISSING ERROR WHEN RESIGNAL TO MYSQL_ERROR=5

Analysis:
--------

As part of the fix for Bug#11757464, the 'out of memory' error
condition was not pushed to the diagnostic area as it requires
memory allocation. However in cases of SIGNAL/RESIGNAL 'out of
memory' error, the server may not be out of memory. Hence it
would be good to report the error in such cases.

Fix:
---

Push only non fatal 'out of memory' errors to the diagnostic area.
Since SIGNAL/RESIGNAL of 'out of memory' error may not be fatal,
the error is reported.
parent 4743ba00
......@@ -1137,10 +1137,12 @@ MYSQL_ERROR* THD::raise_condition(uint sql_errno,
query_cache_abort(&query_cache_tls);
/*
Avoid pushing a condition for out of memory errors as this will require
memory allocation and therefore might fail.
Avoid pushing a condition for fatal out of memory errors as this will
require memory allocation and therefore might fail. Non fatal out of
memory errors can occur if raised by SIGNAL/RESIGNAL statement.
*/
if (sql_errno != EE_OUTOFMEMORY && sql_errno != ER_OUTOFMEMORY)
if (!(is_fatal_error && (sql_errno == EE_OUTOFMEMORY ||
sql_errno == ER_OUTOFMEMORY)))
{
cond= warning_info->push_warning(this, sql_errno, sqlstate, level, msg);
}
......
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