List:Commits« Previous MessageNext Message »
From:Tomas Ulin Date:January 23 2009 10:11am
Subject:bzr commit into mysql-5.1-bugteam branch (tomas.ulin:3225)
View as plain text  
#At file:///home/tomas/mysql_src/mysql-5.1-telco-6.4/

 3225 Tomas Ulin	2009-01-23 [merge]
      merge
modified:
  mysql-test/suite/ndb/r/ndb_basic.result
  mysql-test/suite/ndb/r/ndb_dbug_lock.result
  mysql-test/suite/ndb/t/ndb_dbug_lock.test
  sql/ha_ndbcluster_binlog.cc
  sql/mysqld.cc
  sql/set_var.cc
  storage/ndb/src/ndbapi/TransporterFacade.hpp

=== modified file 'mysql-test/suite/ndb/r/ndb_basic.result'
--- a/mysql-test/suite/ndb/r/ndb_basic.result	2008-11-13 16:32:23 +0000
+++ b/mysql-test/suite/ndb/r/ndb_basic.result	2009-01-23 10:10:40 +0000
@@ -30,6 +30,7 @@ ndb_force_send	#
 ndb_index_stat_cache_entries	#
 ndb_index_stat_enable	#
 ndb_index_stat_update_freq	#
+ndb_log_binlog_index	#
 ndb_log_update_as_write	#
 ndb_log_updated_only	#
 ndb_optimization_delay	#

=== modified file 'mysql-test/suite/ndb/r/ndb_dbug_lock.result'
--- a/mysql-test/suite/ndb/r/ndb_dbug_lock.result	2008-10-29 13:09:15 +0000
+++ b/mysql-test/suite/ndb/r/ndb_dbug_lock.result	2009-01-23 09:40:08 +0000
@@ -40,5 +40,5 @@ t1	CREATE TABLE `t1` (
   PRIMARY KEY (`a`)
 ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
 # Cleanup
-set session debug="-d,sleep_after_global_schema_lock";
+set session debug="-d,";
 drop table t1;

=== modified file 'mysql-test/suite/ndb/t/ndb_dbug_lock.test'
--- a/mysql-test/suite/ndb/t/ndb_dbug_lock.test	2008-11-07 10:33:31 +0000
+++ b/mysql-test/suite/ndb/t/ndb_dbug_lock.test	2009-01-23 09:55:57 +0000
@@ -69,5 +69,5 @@ show create table t1;
 
 --echo # Cleanup
 --connection default
-set session debug="-d,sleep_after_global_schema_lock";
+set session debug="-d,";
 drop table t1;

=== modified file 'sql/ha_ndbcluster_binlog.cc'
--- a/sql/ha_ndbcluster_binlog.cc	2009-01-12 13:17:31 +0000
+++ b/sql/ha_ndbcluster_binlog.cc	2009-01-23 10:10:40 +0000
@@ -35,6 +35,7 @@
 #endif
 
 extern my_bool opt_ndb_log_orig;
+extern my_bool opt_ndb_log_bin;
 extern my_bool opt_ndb_log_empty_epochs;
 
 extern my_bool opt_ndb_log_update_as_write;
@@ -42,6 +43,8 @@ extern my_bool opt_ndb_log_updated_only;
 
 extern my_bool ndbcluster_silent;
 
+extern my_bool ndb_log_binlog_index;
+
 /*
   defines for cluster replication table names
 */
@@ -3087,6 +3090,8 @@ ndb_add_ndb_binlog_index(THD *thd, ndb_b
   */
   do
   {
+    ulonglong epoch, orig_epoch;
+    uint orig_server_id;
     empty_record(ndb_binlog_index);
 
     ndb_binlog_index->field[0]->store(first->master_log_pos, true);
@@ -3100,8 +3105,8 @@ ndb_add_ndb_binlog_index(THD *thd, ndb_b
       ndb_binlog_index->field[4]->store(row->n_updates);
       ndb_binlog_index->field[5]->store(row->n_deletes);
       ndb_binlog_index->field[6]->store(row->n_schemaops);
-      ndb_binlog_index->field[7]->store(row->orig_server_id);
-      ndb_binlog_index->field[8]->store(row->orig_epoch, true);
+      ndb_binlog_index->field[7]->store(orig_server_id= row->orig_server_id);
+      ndb_binlog_index->field[8]->store(orig_epoch= row->orig_epoch, true);
       ndb_binlog_index->field[9]->store(first->gci);
       row= row->next;
     }
@@ -3122,7 +3127,17 @@ ndb_add_ndb_binlog_index(THD *thd, ndb_b
 
     if ((error= ndb_binlog_index->file->ha_write_row(ndb_binlog_index->record[0])))
     {
-      sql_print_error("NDB Binlog: Writing row to ndb_binlog_index: %d", error);
+      char tmp[128];
+      if (ndb_binlog_index->s->fields > 7)
+        my_snprintf(tmp, sizeof(tmp), "%u/%u,%u,%u/%u",
+                    uint(epoch >> 32), uint(epoch),
+                    orig_server_id,
+                    uint(orig_epoch >> 32), uint(orig_epoch));
+
+      else
+        my_snprintf(tmp, sizeof(tmp), "%u/%u", uint(epoch >> 32), uint(epoch));
+      sql_print_error("NDB Binlog: Writing row (%s) to ndb_binlog_index: %d",
+                      tmp, error);
       error= -1;
       goto add_ndb_binlog_index_err;
     }
@@ -5383,7 +5398,6 @@ pthread_handler_t ndb_binlog_thread_func
   Ndb *i_ndb= 0;
   Ndb *s_ndb= 0;
   Thd_ndb *thd_ndb=0;
-  int ndb_update_ndb_binlog_index= 1;
   injector *inj= injector::instance();
   uint incident_id= 0;
   Binlog_thread_state do_ndbcluster_binlog_close_connection;
@@ -5484,7 +5498,7 @@ restart_cluster_failure:
   injector_ndb= i_ndb;
   schema_ndb= s_ndb;
 
-  if (opt_bin_log)
+  if (opt_bin_log && opt_ndb_log_bin)
   {
     ndb_binlog_running= TRUE;
   }
@@ -6103,7 +6117,7 @@ restart_cluster_failure:
           rows->master_log_pos= start.file_pos();
 
           DBUG_PRINT("info", ("COMMIT gci: %lu", (ulong) gci));
-          if (ndb_update_ndb_binlog_index)
+          if (ndb_log_binlog_index)
           {
             ndb_add_ndb_binlog_index(thd, rows);
           }

=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc	2009-01-19 14:40:33 +0000
+++ b/sql/mysqld.cc	2009-01-23 10:10:40 +0000
@@ -420,9 +420,11 @@ ulong opt_ndb_cluster_connection_pool;
 ulong ndb_extra_logging;
 ulong ndb_report_thresh_binlog_epoch_slip= 0;
 ulong ndb_report_thresh_binlog_mem_usage= 0;
+my_bool ndb_log_binlog_index= FALSE;
 my_bool opt_ndb_log_update_as_write= FALSE;
 my_bool opt_ndb_log_updated_only= FALSE;
 my_bool opt_ndb_log_orig= FALSE;
+my_bool opt_ndb_log_bin= FALSE;
 my_bool opt_ndb_log_empty_epochs= FALSE;
 
 extern "C" char opt_ndb_constrbuf[1024];
@@ -5506,7 +5508,7 @@ enum options_mysqld
   OPT_NDB_REPORT_THRESH_BINLOG_MEM_USAGE,
   OPT_NDB_USE_COPYING_ALTER_TABLE,
   OPT_NDB_LOG_UPDATE_AS_WRITE, OPT_NDB_LOG_UPDATED_ONLY,
-  OPT_NDB_LOG_ORIG,
+  OPT_NDB_LOG_ORIG, OPT_NDB_LOG_BIN, OPT_NDB_LOG_BINLOG_INDEX,
   OPT_NDB_LOG_EMPTY_EPOCHS,
   OPT_SKIP_SAFEMALLOC,
   OPT_TEMP_POOL, OPT_TX_ISOLATION, OPT_COMPLETION_TYPE,
@@ -6104,6 +6106,16 @@ master-ssl",
    (uchar**) &opt_ndb_log_orig,
    (uchar**) &opt_ndb_log_orig,
    0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, 0},
+  {"ndb-log-bin", OPT_NDB_LOG_BIN,
+   "Log ndb tables in the binary log. Option only has meaning if "
+   "the binary log has been turned on for the server.",
+   (uchar**) &opt_ndb_log_bin, (uchar**) &opt_ndb_log_bin,
+   0, GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},
+  {"ndb-log-binlog-index", OPT_NDB_LOG_BINLOG_INDEX,
+   "Insert mapping between epochs and binlog positions into the "
+   "ndb_binlog_index table.",
+   (uchar**) &ndb_log_binlog_index, (uchar**) &ndb_log_binlog_index,
+   0, GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},
   {"ndb-log-empty-epochs", OPT_NDB_LOG_EMPTY_EPOCHS,
    "",
    (uchar**) &opt_ndb_log_empty_epochs,

=== modified file 'sql/set_var.cc'
--- a/sql/set_var.cc	2009-01-19 14:40:33 +0000
+++ b/sql/set_var.cc	2009-01-23 10:10:40 +0000
@@ -69,6 +69,7 @@ extern "C" char opt_ndb_constrbuf[];
 extern ulong ndb_extra_logging;
 extern ulong ndb_report_thresh_binlog_epoch_slip;
 extern ulong ndb_report_thresh_binlog_mem_usage;
+extern my_bool ndb_log_binlog_index;
 extern my_bool opt_ndb_log_update_as_write;
 extern my_bool opt_ndb_log_updated_only;
 #endif
@@ -665,6 +666,8 @@ sys_ndb_report_thresh_binlog_epoch_slip(
 static sys_var_long_ptr
 sys_ndb_report_thresh_binlog_mem_usage(&vars, "ndb_report_thresh_binlog_mem_usage",
                                        &ndb_report_thresh_binlog_mem_usage);
+static sys_var_bool_ptr
+sys_ndb_log_binlog_index(&vars, "ndb_log_binlog_index", &ndb_log_binlog_index);
 static sys_var_bool_ptr
 sys_ndb_log_update_as_write(&vars, "ndb_log_update_as_write", &opt_ndb_log_update_as_write);
 static sys_var_bool_ptr

=== modified file 'storage/ndb/src/ndbapi/TransporterFacade.hpp'
--- a/storage/ndb/src/ndbapi/TransporterFacade.hpp	2009-01-09 09:34:36 +0000
+++ b/storage/ndb/src/ndbapi/TransporterFacade.hpp	2009-01-23 10:10:40 +0000
@@ -359,7 +359,9 @@ TransporterFacade::unlock_mutex()
 inline
 unsigned Ndb_cluster_connection_impl::get_connect_count() const
 {
-  return m_transporter_facade->theClusterMgr->m_connect_count;
+  if (m_transporter_facade->theClusterMgr)
+    return m_transporter_facade->theClusterMgr->m_connect_count;
+  return 0;
 }
 
 inline

Thread
bzr commit into mysql-5.1-bugteam branch (tomas.ulin:3225) Tomas Ulin23 Jan