diff options
author | unknown <serg@serg.mysql.com> | 2001-02-28 09:51:41 +0100 |
---|---|---|
committer | unknown <serg@serg.mysql.com> | 2001-02-28 09:51:41 +0100 |
commit | 064c7adf422bddbad3dfdf1dc9d6246082b10a32 (patch) | |
tree | e12784b0696c8cf8e1ababf11e9d665c0fdbe982 /sql | |
parent | 3a7fc247298afdecc6d10ad647b601039e1c4c1f (diff) | |
parent | 1d9c5905f8c7aa98bcca2ee963f79c901433efb6 (diff) | |
download | mariadb-git-064c7adf422bddbad3dfdf1dc9d6246082b10a32.tar.gz |
Merge work:/home/bk/mysql into serg.mysql.com:/usr/home/serg/Abk/mysql
BitKeeper/etc/logging_ok:
auto-union
Docs/manual.texi:
Auto merged
Diffstat (limited to 'sql')
-rw-r--r-- | sql/slave.cc | 48 | ||||
-rw-r--r-- | sql/slave.h | 8 |
2 files changed, 42 insertions, 14 deletions
diff --git a/sql/slave.cc b/sql/slave.cc index ebf757420a3..a5c66216366 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -588,7 +588,7 @@ int show_master_info(THD* thd) net_store_data(packet, (uint32) glob_mi.port); net_store_data(packet, (uint32) glob_mi.connect_retry); net_store_data(packet, glob_mi.log_file_name); - net_store_data(packet, (longlong) glob_mi.pos); + net_store_data(packet, (uint32) glob_mi.pos); pthread_mutex_unlock(&glob_mi.lock); pthread_mutex_lock(&LOCK_slave); net_store_data(packet, slave_running ? "Yes":"No"); @@ -1150,7 +1150,7 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused))) int error = 1; bool retried_once = 0; - ulonglong last_failed_pos = 0; + uint32 last_failed_pos = 0; // needs to call my_thread_init(), otherwise we get a coredump in DBUG_ stuff my_thread_init(); @@ -1160,7 +1160,10 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused))) pthread_detach_this_thread(); if (init_slave_thread(thd) || init_master_info(&glob_mi)) - goto err; + { + sql_print_error("Failed during slave thread initialization"); + goto err; + } thd->thread_stack = (char*)&thd; // remember where our stack is thd->temporary_tables = save_temporary_tables; // restore temp tables threads.append(thd); @@ -1175,7 +1178,7 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused))) goto err; } - thd->proc_info = "Connecting to master"; + thd->proc_info = "connecting to master"; #ifndef DBUG_OFF sql_print_error("Slave thread initialized"); #endif @@ -1187,7 +1190,10 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused))) RPL_LOG_NAME, glob_mi.pos); else - goto err; + { + sql_print_error("Slave thread killed while connecting to master"); + goto err; + } while (!slave_killed(thd)) { @@ -1196,9 +1202,13 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused))) { sql_print_error("Failed on request_dump()"); if(slave_killed(thd)) - goto err; + { + sql_print_error("Slave thread killed while requesting master \ +dump"); + goto err; + } - thd->proc_info = "Waiting to reconnect after a failed dump request"; + thd->proc_info = "Waiiting to reconnect after a failed dump request"; if(mysql->net.vio) vio_close(mysql->net.vio); // first time retry immediately, assuming that we can recover @@ -1210,14 +1220,21 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused))) retried_once = 1; if(slave_killed(thd)) + { + sql_print_error("Slave thread killed while retrying master \ +dump"); goto err; + } thd->proc_info = "Reconnecting after a failed dump request"; sql_print_error("Slave: failed dump request, reconnecting to \ try again, log '%s' at postion %ld", RPL_LOG_NAME, last_failed_pos = glob_mi.pos ); if(safe_reconnect(thd, mysql, &glob_mi) || slave_killed(thd)) + { + sql_print_error("Slave thread killed during or after reconnect"); goto err; + } continue; } @@ -1228,7 +1245,10 @@ try again, log '%s' at postion %ld", RPL_LOG_NAME, thd->proc_info = "Reading master update"; uint event_len = read_event(mysql, &glob_mi); if(slave_killed(thd)) - goto err; + { + sql_print_error("Slave thread killed while reading event"); + goto err; + } if (event_len == packet_error) { @@ -1241,13 +1261,21 @@ try again, log '%s' at postion %ld", RPL_LOG_NAME, retried_once = 1; if(slave_killed(thd)) - goto err; + { + sql_print_error("Slave thread killed while waiting to \ +reconnect after a failed read"); + goto err; + } thd->proc_info = "Reconnecting after a failed read"; sql_print_error("Slave: Failed reading log event, \ reconnecting to retry, log '%s' position %ld", RPL_LOG_NAME, last_failed_pos = glob_mi.pos); if(safe_reconnect(thd, mysql, &glob_mi) || slave_killed(thd)) - goto err; + { + sql_print_error("Slave thread killed during or after a \ +reconnect done to recover from failed read"); + goto err; + } break; } diff --git a/sql/slave.h b/sql/slave.h index 11c01a9fa03..d47ec22410c 100644 --- a/sql/slave.h +++ b/sql/slave.h @@ -4,7 +4,7 @@ typedef struct st_master_info { char log_file_name[FN_REFLEN]; - ulonglong pos,pending; + uint32 pos,pending; File fd; // we keep the file open, so we need to remember the file pointer IO_CACHE file; // the variables below are needed because we can change masters on the fly @@ -29,11 +29,11 @@ typedef struct st_master_info pthread_mutex_destroy(&lock); pthread_cond_destroy(&cond); } - inline void inc_pending(ulonglong val) + inline void inc_pending(uint32 val) { pending += val; } - inline void inc_pos(ulonglong val) + inline void inc_pos(uint32 val) { pthread_mutex_lock(&lock); pos += val + pending; @@ -43,7 +43,7 @@ typedef struct st_master_info } // thread safe read of position - not needed if we are in the slave thread, // but required otherwise - inline void read_pos(ulonglong& var) + inline void read_pos(uint32& var) { pthread_mutex_lock(&lock); var = pos; |