mariadb/mysql-test/include
unknown 3220a94519 Robustness feature.
Won't be pushed as is - separate email sent for internal review.
WL#1717 "binlog-innodb consistency".
Now when mysqld starts, if InnoDB does a crash recovery, we use the binlog name
and position retrieved from InnoDB (corresponding to the last transaction
successfully committed by InnoDB) to cut any rolled back transaction from
the binary log. This is triggered by the --innodb-safe-binlog option.
Provided you configure mysqld to fsync() InnoDB at every commit (using
flush_log_at_trx_commit) and to fsync() the binlog at every write
(using --sync-binlog=1), this behaviour guarantees that a master always has
consistency between binlog and InnoDB, whenever the crash happens.
6 tests to verify that it works.


client/mysqltest.c:
  New command require_os (only "unix" accepted for now).
innobase/include/trx0sys.h:
  when InnoDB does crash recovery, we now save the binlog coords it prints, into variables for later use.
innobase/trx/trx0sys.c:
  when InnoDB does crash recovery, we now save the binlog coords it prints, into variables for later use.
mysql-test/mysql-test-run.sh:
  The tests which check that the binlog is cut at restart, need to not delete those binlogs, of course.
  And not delete replication info, so that we can test that the slave does not receive anything
  wrong from the cut binlog.
sql/ha_innodb.cc:
  methods to read from InnoDB the binlog coords stored into it
sql/ha_innodb.h:
  ethods to read from InnoDB the binlog coords stored into it
sql/log.cc:
  Added my_sync() when we create a binlog (my_sync of the binlog and of the index file);
  this is always done, whether --sync-binlog or not (binlog creation is rare, so no speed
  problem, and I like to have the existence of the binlog always reliably recorded, even if
  later content is not).
  If --crash-binlog-innodb, crash between the binlog write and the InnoDB commit.
  New methods:
  - report_pos_in_innodb() to store the binlog name and position into InnoDB (used only when
  we create a new binlog: at startup and at FLUSH LOGS)
  - cut_spurious_tail() to possibly cut the tail of a binlog based on the info we read
  from InnoDB (does something only if InnoDB has just done a crash recovery).
sql/mysql_priv.h:
  new option, to crash (use for testing only)
sql/mysqld.cc:
  New option --innodb-safe-binlog and --crash-binlog-innodb (the latter is for testing, it makes mysqld crash).
  Just after opening the logs and opening the storage engines, cut any wrong statement from the binlog, based
  on info read from InnoDB.
sql/sql_class.h:
  new methods for MYSQL_LOG.
2004-06-20 19:11:02 +02:00
..
check_var_limit.inc Add detection of in_addr_t 2003-08-28 06:08:17 +03:00
have_archive.inc Added tests for archive. Cleaned up a merge mistake and added some information on how well archive compresses. 2004-05-25 13:27:01 -07:00
have_bdb.inc changes to make things work in the max version 2001-10-04 15:42:25 -06:00
have_big5.inc "like" did not work in some cases with character set big5 2003-12-24 16:59:48 +04:00
have_compress.inc added compress/uncompress function 2003-04-09 20:50:30 -04:00
have_crypt.inc Fixes for Netware 2003-01-28 08:38:28 +02:00
have_debug.inc Robustness feature. 2004-06-20 19:11:02 +02:00
have_geometry.inc WL#1163 (Make spatial code separable for other parts) 2004-05-27 20:31:30 +05:00
have_innodb.inc changes to make things work in the max version 2001-10-04 15:42:25 -06:00
have_isam.inc Cleanup after last merge 2001-10-08 07:24:04 +03:00
have_ndb.inc Updated mysql-test-run to work with the started NDB Cluster 2004-04-15 12:03:13 +02:00
have_openssl.inc changes to make things work in the max version 2001-10-04 15:42:25 -06:00
have_openssl_1.inc Openssl test 2003-03-11 13:41:53 +04:00
have_query_cache.inc added building without query cache 2002-03-22 22:55:08 +02:00
have_sjis.inc #3290: Can't convert sjis&ujis half-width katakana correctly 2004-03-25 14:29:56 +04:00
have_tis620.inc Bug 1552: 2003-12-25 20:11:01 +04:00
have_ucs2.inc Character set sets now check if required non-dynamic charsets were really compiled 2003-05-23 15:10:05 +05:00
have_ujis.inc Character set sets now check if required non-dynamic charsets were really compiled 2003-05-23 15:10:05 +05:00
master-slave.inc Do not give an error when the user does START SLAVE on an already 2003-03-03 23:12:17 +01:00
not_embedded.inc After merge fixes 2003-05-21 21:39:58 +03:00
system_db_struct.inc fixed BUG #2874 "Grant table bug" and 2004-03-10 22:54:07 +04:00