List:Commits« Previous MessageNext Message »
From:Staale Smedseng Date:June 25 2010 11:00am
Subject:bzr commit into mysql-5.1-bugteam branch (staale.smedseng:3419) Bug#53899
View as plain text  
#At file:///export/home/tmp/ss156133/z/53899-51/ based on revid:georgi.kodinov@stripped

 3419 Staale Smedseng	2010-06-25
      Bug #53899 Wrong mysql_stmt_errno() after connection loss with
      automatic reconnect
      
      [This is a recommit of last week's commit which was missing a bug
      number in the commit message.]
      
      A client with automatic reconnect enabled will see the error message
      "Lost connection to MySQL server during query" if the connection is
      lost between mysql_stmt_prepare() and mysql_stmt_execute(). The
      mysql_stmt_errno() number, however, is 0 -- not the corresponding
      value 2013.
      
      This patch checks for the case where the prepared statement has been
      pruned due to a connection loss (i.e., stmt->mysql has been set to
      NULL) during a call to cli_advanced_command().

    modified:
      libmysql/libmysql.c
=== modified file 'libmysql/libmysql.c'
--- a/libmysql/libmysql.c	2010-02-26 14:30:14 +0000
+++ b/libmysql/libmysql.c	2010-06-25 11:00:08 +0000
@@ -2495,7 +2495,13 @@ static my_bool execute(MYSQL_STMT *stmt,
   stmt->insert_id= mysql->insert_id;
   if (res)
   {
-    set_stmt_errmsg(stmt, net);
+    /* 
+      If stmt->mysql is cleared (i.e., server is lost while auto
+      reconnect is enabled), don't touch the stmt error as this was
+      already set in mysql_prune_stmt_list().
+    */
+    if (stmt->mysql)
+      set_stmt_errmsg(stmt, net);
     DBUG_RETURN(1);
   }
   DBUG_RETURN(0);


Attachment: [text/bzr-bundle] bzr/staale.smedseng@sun.com-20100625110008-4ui0u1tj15b4tkia.bundle
Thread
bzr commit into mysql-5.1-bugteam branch (staale.smedseng:3419) Bug#53899Staale Smedseng25 Jun