diff options
author | unknown <guilhem@mysql.com> | 2004-04-08 22:12:22 +0200 |
---|---|---|
committer | unknown <guilhem@mysql.com> | 2004-04-08 22:12:22 +0200 |
commit | 1f01df0e72a97a7a2ae91488bb1094390e85f4f8 (patch) | |
tree | 140703ce20380e246c425e9390ae74e3484df1c6 /scripts | |
parent | a5d016ecb4e495efde82a6f0484c51bc2d0fa842 (diff) | |
download | mariadb-git-1f01df0e72a97a7a2ae91488bb1094390e85f4f8.tar.gz |
Fix for BUG#3422 "In 3.23 -> 4.0 replication, slave segfault when replicating LOAD DATA INFILE":
as we transform the 3.23 Load_log_event into a 4.0 Create_file_log_event which is one
byte longer, we need to increment event_len. The bug was that we did not increment it,
so later in code the end 0 was not seen so there was for example a segfault in
strlen(fname) because fname was not 0-terminated.
Other problems remain in 3.23->4.0 replication of LOAD DATA INFILE but they are less serious:
Exec_master_log_pos and Relay_log_space are incorrect. I'll document them.
They are not fixable without significant code changes (if you fix those problems in 4.0,
you get assertion failures somewhere else etc), * which are already done in 5.0.0 *.
sql/slave.cc:
In 3.23->4.0 replication of LOAD DATA INFILE:
as we transform the 3.23 Load_log_event into a 4.0 Create_file_log_event which is one
byte longer, we need to increment event_len.
So we need to modify the event_len stored in the event.
And we need to decrement event_len when we compute the offset in the master's binlog.
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions