Commit graph

3 commits

Author SHA1 Message Date
unknown
ecd1ea93a7 Bug#11905: Tables used in rpl_deadlock are not dropped at the
end of the test, causing subsequent tests to fail.


mysql-test/r/rpl_deadlock.result:
  Result change.
mysql-test/t/rpl_deadlock.test:
  Tables used in the test but not dropped.
2005-07-13 13:49:35 +02:00
unknown
6bc324ed21 "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
2005-03-23 19:19:36 +01:00
unknown
d7e0784c65 Fix for BUG#8325 "Deadlock in replication thread stops replication":
in slave SQL thread: if a transaction fails because of InnoDB deadlock or innodb_lock_wait_timeout exceeded,
optionally retry the transaction a certain number of times (new variable --slave_transaction_retries).


sql/mysql_priv.h:
  new var slave_transaction_retries
sql/mysqld.cc:
  new variable slave_transaction_retries. Plus fixing a typo.
sql/set_var.cc:
  new global variable slave_transaction_retries (will be one per subslave, when we have multimaster).
sql/slave.cc:
  Slave SQL thread: if a transaction fails because of InnoDB deadlock or innodb_lock_wait_timeout exceeded,
  optionally retry the transaction a certain number of times (--slave_transaction_retries).
sql/slave.h:
  new RELAY_LOG_INFO::trans_retries.
2005-03-02 11:29:48 +01:00