• unknown's avatar
    Use my_b_append instead of my_b_write on a SEQ_READ_APPEND cache, when we write · d43a347d
    unknown authored
    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.
    d43a347d
log.cc 45.5 KB