diff options
author | unknown <sasha@mysql.sashanet.com> | 2001-02-19 23:08:24 -0700 |
---|---|---|
committer | unknown <sasha@mysql.sashanet.com> | 2001-02-19 23:08:24 -0700 |
commit | f80c3cb4f1fbd974859faa5033d8e5ad7f528c9e (patch) | |
tree | d846ff87969a7db74d7c410f2673aebb2d4af102 /sql | |
parent | d4bde747183609cb798e4c219bb4801fbfd2f564 (diff) | |
download | mariadb-git-f80c3cb4f1fbd974859faa5033d8e5ad7f528c9e.tar.gz |
replication fixes
Docs/manual.texi:
updates from Matthias Urlichs
mysql-test/r/rpl000016.result:
position sanity check - hope to catch the timing bug
mysql-test/t/rpl000016.test:
position sanity check - hope to catch timing bug
sql/log_event.cc:
limit event length by max_allowed_packet
sql/log_event.h:
abolish MAX_EVENT_LEN
sql/sql_repl.cc:
error for events larger than max_allowed_packet
Diffstat (limited to 'sql')
-rw-r--r-- | sql/log_event.cc | 5 | ||||
-rw-r--r-- | sql/log_event.h | 2 | ||||
-rw-r--r-- | sql/sql_repl.cc | 4 |
3 files changed, 8 insertions, 3 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc index 38f353d4ec7..d643952c5b0 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -85,10 +85,11 @@ int Log_event::read_log_event(IO_CACHE* file, String* packet, return file->error > 0 ? LOG_READ_TRUNC: LOG_READ_IO; } data_len = uint4korr(buf + EVENT_LEN_OFFSET); - if (data_len < LOG_EVENT_HEADER_LEN || data_len > MAX_EVENT_LEN) + if (data_len < LOG_EVENT_HEADER_LEN || data_len > max_allowed_packet) { if (log_lock) pthread_mutex_unlock(log_lock); - return LOG_READ_BOGUS; + return (data_len < LOG_EVENT_HEADER_LEN) ? LOG_READ_BOGUS : + LOG_READ_TOO_LARGE; } packet->append(buf, sizeof(buf)); data_len -= LOG_EVENT_HEADER_LEN; diff --git a/sql/log_event.h b/sql/log_event.h index 8a22048bba4..79186e329da 100644 --- a/sql/log_event.h +++ b/sql/log_event.h @@ -31,6 +31,7 @@ #define LOG_READ_IO -3 #define LOG_READ_MEM -5 #define LOG_READ_TRUNC -6 +#define LOG_READ_TOO_LARGE -7 #define LOG_EVENT_OFFSET 4 #define BINLOG_VERSION 1 @@ -42,7 +43,6 @@ + sizeof(uint32) + 2 + sizeof(uint32)) #define EVENT_LEN_OFFSET 9 #define EVENT_TYPE_OFFSET 4 -#define MAX_EVENT_LEN 4*1024*1024 #define QUERY_EVENT_OVERHEAD (LOG_EVENT_HEADER_LEN+QUERY_HEADER_LEN) #define ROTATE_EVENT_OVERHEAD LOG_EVENT_HEADER_LEN #define LOAD_EVENT_OVERHEAD (LOG_EVENT_HEADER_LEN+LOAD_HEADER_LEN+sizeof(sql_ex_info)) diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 7730706f0d0..e354bb65713 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -352,6 +352,10 @@ sweepstakes if you report the bug"; case LOG_READ_BOGUS: errmsg = "bogus data in log event"; break; + case LOG_READ_TOO_LARGE: + errmsg = "log event entry exceeded max_allowed_packet -\ + increase max_allowed_packet on master"; + break; case LOG_READ_IO: errmsg = "I/O error reading log event"; break; |