Commit 2a21a662 authored by Ramil Kalimullin's avatar Ramil Kalimullin

Fix for bug#11758931 - 51196: SLAVE SQL: GOT AN ERROR WRITING

COMMUNICATION PACKETS, ERROR_CODE: 1160

If idle FEDERATED table is evicted from the table cache when 
a connection to remote server is lost, query that initiated 
eviction may fail.
If this query is executed by slave SQL thread it may fail as well.

An error of close was stored in diagnostics area, which was later
attributed to the statement that caused eviction.

With this patch FEDERATED clears an error of close.
parent 51078332
...@@ -1651,6 +1651,15 @@ int ha_federated::close(void) ...@@ -1651,6 +1651,15 @@ int ha_federated::close(void)
mysql_close(mysql); mysql_close(mysql);
mysql= NULL; mysql= NULL;
/*
mysql_close() might return an error if a remote server's gone
for some reason. If that happens while removing a table from
the table cache, the error will be propagated to a client even
if the original query was not issued against the FEDERATED table.
So, don't propagate errors from mysql_close().
*/
table->in_use->clear_error();
DBUG_RETURN(free_share(share)); DBUG_RETURN(free_share(share));
} }
......
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