summaryrefslogtreecommitdiff
path: root/sql/net_serv.cc
diff options
context:
space:
mode:
authorGeorgi Kodinov <joro@sun.com>2010-04-07 18:17:56 +0300
committerGeorgi Kodinov <joro@sun.com>2010-04-07 18:17:56 +0300
commit257363e6c41d71c0ba3ce870614dfed1ff47676f (patch)
tree42afe67eac2b3e22cea008dd1d7350903ceea474 /sql/net_serv.cc
parent35f6b544c46026b9283cb3a06d874c84e8bbee8b (diff)
downloadmariadb-git-257363e6c41d71c0ba3ce870614dfed1ff47676f.tar.gz
Bug #52512: Assertion `! is_set()' in Diagnostics_area::set_ok_status
on LOAD DATA Two problems : 1. LOAD DATA was not checking for SQL errors and was sending an OK packet even when there were errors reported already. Fixed to check for SQL errors in addition to the error conditions already detected. 2. There was an over-ambitious assert() on the server to check if the protocol is always followed by the client. This can cause crashes on debug servers by clients not completing the protocol exchange for some reason (e.g. --send command in mysqltest). Fixed by keeping the assert only on client side, since the server always completes the protocol exchange.
Diffstat (limited to 'sql/net_serv.cc')
-rw-r--r--sql/net_serv.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/net_serv.cc b/sql/net_serv.cc
index 73892f31ccf..1badee68be4 100644
--- a/sql/net_serv.cc
+++ b/sql/net_serv.cc
@@ -903,7 +903,13 @@ my_real_read(NET *net, size_t *complen)
("Packets out of order (Found: %d, expected %u)",
(int) net->buff[net->where_b + 3],
net->pkt_nr));
-#ifdef EXTRA_DEBUG
+ /*
+ We don't make noise server side, since the client is expected
+ to break the protocol for e.g. --send LOAD DATA .. LOCAL where
+ the server expects the client to send a file, but the client
+ may reply with a new command instead.
+ */
+#if defined (EXTRA_DEBUG) && !defined (MYSQL_SERVER)
fflush(stdout);
fprintf(stderr,"Error: Packets out of order (Found: %d, expected %d)\n",
(int) net->buff[net->where_b + 3],