diff options
author | unknown <gbichot@quadita2.mysql.com> | 2005-03-23 19:19:36 +0100 |
---|---|---|
committer | unknown <gbichot@quadita2.mysql.com> | 2005-03-23 19:19:36 +0100 |
commit | 6bc324ed215f245eb57c5197b41be7cc3cdaf382 (patch) | |
tree | c57c0fd69a424b24d50306557552a989bad8cab2 /libmysql | |
parent | 3a88de432160d0aa9bfb1cf6e8d3c4febd0eff71 (diff) | |
download | mariadb-git-6bc324ed215f245eb57c5197b41be7cc3cdaf382.tar.gz |
"After Monty's review" changes to the fix for BUG#8325 "Deadlock in replication thread stops replication":
s/sleep/safe_sleep (thread safe); sleep 0/1/2/3/4/5/5/5 (get slave less late);
no message on error log (deadlock is too common sometimes), a global counter
instead (SHOW STATUS LIKE 'slave_retried_transactions').
Plus a fix for libmysql/Makefile.shared
libmysql/Makefile.shared:
When we "make clean" in libmysql/ we remove the symlinks there, so we
need to mark that they have to be recreated later: this is done by removing
../linked_libmysql_sources. If we don't do this, 'make' will fail after 'cd libmysql;make clean'.
This Makefile.shared is used by libmysql_r too.
No reason to remove linked_client_sources as we don't remove the links in client/.
mysql-test/r/rpl_deadlock.result:
result fix
mysql-test/t/rpl_deadlock.test:
small test addition
sql/mysqld.cc:
if active_mi could not be alloced, die. New SHOW STATUS LIKE "slave_retried_transactions".
sql/slave.cc:
If slave retries automatically a transaction, no message on error log
(too common situation); sleep 0 secs at first retry, then 1, 2, 3, 4,
5, 5, 5... Sleeping 0 is to get the least possible late, as deadlocks
are usually resolved at first try. New global counter rli->retried_trans
(for SHOW STATUS: total number of times the slave had to retry
any transaction). safe_sleep() is thread-safe, sleep() was not.
I change the rli->trans_retries counter to go from 0 to max instead
of the other way (better for new sleep()).
sql/slave.h:
new global counter rli->retried_trans
sql/sql_show.cc:
SHOW STATUS LIKE "slave_retried_transactions"; needs replication mutexes.
Can't be a simple SHOW_LONG, because active_mi is unset (not alloced yet)
when the static global status_vars is created (active_mi is set
in init_slave()).
sql/structs.h:
new SHOW_SLAVE_RETRIED_TRANS
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Diffstat (limited to 'libmysql')
-rw-r--r-- | libmysql/Makefile.shared | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libmysql/Makefile.shared b/libmysql/Makefile.shared index 9664fb0abef..23a8201cbf6 100644 --- a/libmysql/Makefile.shared +++ b/libmysql/Makefile.shared @@ -94,7 +94,8 @@ clean-local: `echo $(sql_cmn_objects) | sed "s;\.lo;.c;g"` \ $(CHARSET_SRCS) $(CHARSET_OBJS) \ $(mystringsextra) $(mysysheaders) $(vioheaders)\ - ../linked_client_sources net.c + ../linked_libmysql_sources ../linked_libmysql_r_sources \ + net.c conf_to_src_SOURCES = conf_to_src.c conf_to_src_LDADD= |