diff options
author | Alexander Nozdrin <alexander.nozdrin@oracle.com> | 2011-09-22 18:31:16 +0400 |
---|---|---|
committer | Alexander Nozdrin <alexander.nozdrin@oracle.com> | 2011-09-22 18:31:16 +0400 |
commit | 1922d65fd8881836b57ac925596dac4cb753e29b (patch) | |
tree | 8a1d75b95a1c82e444020c7e53d303b13cf3f9bd /sql/sql_cache.cc | |
parent | 1cfcab041ae325b9280e68bcaa8d0395c33cef5c (diff) | |
download | mariadb-git-1922d65fd8881836b57ac925596dac4cb753e29b.tar.gz |
Fix for Bug#13001491: MYSQL_REFRESH CRASHES WHEN STORED ROUTINES ARE RUN CONCURRENTLY.
The main problem was that lex_start() was forgotten to be called before processing
COM_REFRESH.
Another problem discovered was that if failures to flush the error log were not properly
handled, which resulted in the server crash.
The user-visible effect of these problems were:
- if COM_REFRESH command was sent after SQL-queries of some sort,
the server would crash.
- if COM_REFRESH was requested with REFRESH_LOG only, and the error log
failed to flush, the server would crash. The error log fails to flush
when it points to unavailable file (for example, due to restricted
permissions).
The fixes are:
- call lex_start() in the beginning of COM_REFRESH;
- handle failures to flush the error log properly, i.e. raise ER_UNKNOWN_ERROR.
sql/sql_parse.cc:
Fix for Bug#13001491: MYSQL_REFRESH CRASHES WHEN STORED ROUTINES ARE RUN CONCURRENTLY.
tests/mysql_client_test.c:
A test case for Bug#13001491: MYSQL_REFRESH CRASHES WHEN STORED ROUTINES
ARE RUN CONCURRENTLY.
Diffstat (limited to 'sql/sql_cache.cc')
0 files changed, 0 insertions, 0 deletions