Skip to content

Commit 1280e43

Browse files
committed
BUG#21776505: GR DOES NOT HANDLE BIG GTID_EXECUTED CORRECTLY
Post-fix: update VIEW_CHANGE_HEADER_LEN value.
1 parent ae7ff13 commit 1280e43

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

libbinlogevents/include/binlog_event.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -785,7 +785,7 @@ class Binary_log_event
785785
IGNORABLE_HEADER_LEN= 0,
786786
ROWS_HEADER_LEN_V2= 10,
787787
TRANSACTION_CONTEXT_HEADER_LEN= 18,
788-
VIEW_CHANGE_HEADER_LEN= 53,
788+
VIEW_CHANGE_HEADER_LEN= 52,
789789
XA_PREPARE_HEADER_LEN= 0
790790
}; // end enum_post_header_length
791791
protected:

libbinlogevents/src/control_events.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -868,18 +868,20 @@ char* View_change_event::read_data_map(char *pos,
868868
{
869869
BAPI_ASSERT(map->empty());
870870
uint16_t created= 0;
871+
uint32_t created_value= 0;
871872
for (uint32_t i= 0; i < map_len; i++)
872873
{
874+
created=0;
873875
memcpy(&created, pos, sizeof(created));
874876
uint16_t key_len= (uint16_t) le16toh(created);
875877
pos+= ENCODED_CERT_INFO_KEY_SIZE_LEN;
876878

877879
std::string key(pos, key_len);
878880
pos+= key_len;
879881

880-
created=0;
881-
memcpy(&created, pos, sizeof(created));
882-
uint32_t value_len= le32toh(created);
882+
created_value=0;
883+
memcpy(&created_value, pos, sizeof(created_value));
884+
uint32_t value_len= le32toh(created_value);
883885
pos+= ENCODED_CERT_INFO_VALUE_LEN;
884886

885887
std::string value(pos, value_len);

0 commit comments

Comments
 (0)