List:Commits« Previous MessageNext Message »
From:Sergei Golubchik Date:August 25 2008 2:25pm
Subject:bzr commit into mysql-6.0 branch (serg:2692) Bug#38492
View as plain text  
#At file:///usr/home/serg/Abk/mysql/6.0-maria/

 2692 Sergei Golubchik	2008-08-25
      different fix for Bug#38492 assert in ha_maria.cc::external_lock
      that makes no changes outside of ha_maria.cc and also works in embedded
modified:
  sql/sql_class.cc
  sql/sql_class.h
  sql/sql_parse.cc
  storage/maria/ha_maria.cc

per-file messages:
  sql/sql_class.cc
    revert bugfix for Bug#38492
  sql/sql_class.h
    revert bugfix for Bug#38492
  sql/sql_parse.cc
    revert bugfix for Bug#38492
  storage/maria/ha_maria.cc
    different fix for Bug#38492 assert in ha_maria.cc::external_lock
    that makes no changes outside of ha_maria.cc and also works in embedded
=== modified file 'sql/sql_class.cc'
--- a/sql/sql_class.cc	2008-08-20 15:02:09 +0000
+++ b/sql/sql_class.cc	2008-08-25 12:25:07 +0000
@@ -391,7 +391,6 @@ Diagnostics_area::reset_diagnostics_area
   m_total_warn_count= 0;
 #endif
   is_sent= FALSE;
-  is_quit= FALSE;
   /** Tiny reset in debug mode to see garbage right away */
   m_status= DA_EMPTY;
   DBUG_VOID_RETURN;

=== modified file 'sql/sql_class.h'
--- a/sql/sql_class.h	2008-08-20 15:02:09 +0000
+++ b/sql/sql_class.h	2008-08-25 12:25:07 +0000
@@ -1141,8 +1141,6 @@ public:
   };
   /** True if status information is sent to the client. */
   bool is_sent;
-  /** True if connection is closed */
-  bool is_quit;
   /** Set to make set_error_status after set_{ok,eof}_status possible. */
   bool can_overwrite_status;
 

=== modified file 'sql/sql_parse.cc'
--- a/sql/sql_parse.cc	2008-08-24 17:52:42 +0000
+++ b/sql/sql_parse.cc	2008-08-25 12:25:07 +0000
@@ -1242,7 +1242,6 @@ bool dispatch_command(enum enum_server_c
     general_log_print(thd, command, NullS);
     net->error=0;				// Don't give 'abort' message
     thd->main_da.disable_status();              // Don't send anything back
-    thd->main_da.is_quit= TRUE;                 // Connection is closed
     error=TRUE;					// End server
     break;
 
@@ -1317,7 +1316,6 @@ bool dispatch_command(enum enum_server_c
                       (long) pos);
       mysql_binlog_send(thd, thd->strdup(packet + 10), (my_off_t) pos, flags);
       unregister_slave(thd,1,1);
-      thd->main_da.is_quit= TRUE;                 // Connection is closed
       /*  fake COM_QUIT -- if we get here, the thread needs to terminate */
       error = TRUE;
       break;
@@ -1366,7 +1364,6 @@ bool dispatch_command(enum enum_server_c
     my_eof(thd);
     close_thread_tables(thd);			// Free before kill
     kill_mysql();
-    thd->main_da.is_quit= TRUE;                 // Connection is closed
     error=TRUE;
     break;
   }

=== modified file 'storage/maria/ha_maria.cc'
--- a/storage/maria/ha_maria.cc	2008-08-20 15:02:09 +0000
+++ b/storage/maria/ha_maria.cc	2008-08-25 12:25:07 +0000
@@ -2236,7 +2236,8 @@ int ha_maria::external_lock(THD *thd, in
             This is a bit excessive, ACID requires this only if there are some
             changes to commit (rollback shouldn't be tested).
           */
-          DBUG_ASSERT(!thd->main_da.is_sent || thd->main_da.is_quit);
+          DBUG_ASSERT(!thd->main_da.is_sent ||
+                      thd->killed == THD::KILL_CONNECTION);
           /* autocommit ? rollback a transaction */
 #ifdef MARIA_CANNOT_ROLLBACK
           if (ma_commit(trn))

Thread
bzr commit into mysql-6.0 branch (serg:2692) Bug#38492Sergei Golubchik25 Aug