diff options
author | unknown <guilhem@mysql.com> | 2003-08-19 17:00:36 +0200 |
---|---|---|
committer | unknown <guilhem@mysql.com> | 2003-08-19 17:00:36 +0200 |
commit | d43a347db179f4601465debc3bfd3cfbb87d1528 (patch) | |
tree | 572706e4da26928b7adb044c7b188049dfa27b97 /sql/log.cc | |
parent | fe0e54643492c6b689664ed09206db58dca29967 (diff) | |
download | mariadb-git-d43a347db179f4601465debc3bfd3cfbb87d1528.tar.gz |
Use my_b_append instead of my_b_write on a SEQ_READ_APPEND cache, when we write
the first 4 bytes of the relay log. Indeed comments in mysys/mf_iocache.c
say we must always use my_b_append for such a cache.
This *could* avoid a very rare assertion failure which is:
030524 19:32:38 Slave SQL thread initialized, starting replication in log 'FIRST' at position 0, relay log '/
users/gbichot/4.1.1/mysql-test/var/log/slave-relay-bin.000001' position: 4
030524 19:32:38 next log '/users/gbichot/4.1.1/mysql-test/var/log/slave-relay-bin.000002' is currently active
mysqld: mf_iocache.c:701: _my_b_seq_read: Assertion `pos_in_file == info->end_of_file' failed.
and which seemed to happen always when the SQL thread and/or the I/O thread
were at position 4 in a relay log.
include/my_sys.h:
moving a function from log_event.cc so that it can be widely used
mysys/mf_iocache.c:
moving a function from log_event.cc so that it can be widely used
sql/log.cc:
my_b_write should not be used on a SEQ_READ_APPEND cache, one should use my_b_append
(otherwise there could be some locking problems).
sql/log_event.cc:
moved to mysys/mf_iocache.c for wider use.
A typo.
Diffstat (limited to 'sql/log.cc')
-rw-r--r-- | sql/log.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/log.cc b/sql/log.cc index 17715620950..4dce26d23ea 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -263,7 +263,7 @@ bool MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, an extension for the binary log files. In this case we write a standard header to it. */ - if (my_b_write(&log_file, (byte*) BINLOG_MAGIC, BIN_LOG_HEADER_SIZE)) + if (my_b_safe_write(&log_file, (byte*) BINLOG_MAGIC, BIN_LOG_HEADER_SIZE)) goto err; bytes_written += BIN_LOG_HEADER_SIZE; write_file_name_to_index_file=1; |