Current Path : /home/usr.opt/mysql57/mysql-test/include/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : /home/usr.opt/mysql57/mysql-test/include/wait_for_ndb_committed_to_binlog.inc |
# ==== Purpose ==== # # Several test primitives from mysql-test/extra/rpl_tests # are shared for test cases for MyISAM, InnoDB, NDB and # other engines. # For NDB engine all events will be added by NDB injector # so tests only can continue after injector is ready, # this file waits for all committed transactions (at start # of file) are injected into the binlog. # # ==== Usage ==== # # let $wait_timeout= 150; # --source include/wait_for_ndb_committed_to_binlog.inc # # ==== Parameters ===== # # $wait_timeout # Time to wait in seconds for epoch to be injected in binlog. # On timeout test dies. # if (`SELECT 1 FROM information_schema.engines WHERE engine = 'ndbcluster' AND support IN ('YES', 'DEFAULT')`) { let $max_run_time= 150; if ($wait_timeout) { let $max_run_time= $wait_timeout; } # Reset $wait_timeout so that its value won't be used on subsequent # calls, and default will be used instead. let $wait_timeout= 0; # The smallest timespan till UNIX_TIMESTAMP() gets incremented is ~0 seconds. # We add one second to avoid the case that somebody measures timespans on a # real clock with fractions of seconds, detects that n seconds are sufficient, # assigns n to this routine and suffers because he sometimes gets n - 1 # seconds in reality. let $max_end_time= `SELECT UNIX_TIMESTAMP() + $max_run_time + 1`; source include/get_ndb_epochs.inc; while (`SELECT $ndb_latest_trans_epoch > $ndb_latest_handled_binlog_epoch AND UNIX_TIMESTAMP() <= $max_end_time`) { # Sleep a bit to avoid too heavy load. sleep 0.1; source include/get_ndb_epochs.inc; } if (`SELECT $ndb_latest_trans_epoch > $ndb_latest_handled_binlog_epoch`) { echo ERROR IN TEST: Timeout in waiting for epoch $ndb_latest_trans_epoch to be handled, last handled is $ndb_latest_handled_binlog_epoch; die ERROR IN TEST: Timeout in waiting for epoch to be handled; } }