diff -uprN data1/mysql-8.0.29/libbinlogevents/include/binlog_event.h data2/mysql-8.0.29/libbinlogevents/include/binlog_event.h
--- data1/mysql-8.0.29/libbinlogevents/include/binlog_event.h 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/libbinlogevents/include/binlog_event.h 2022-05-23 19:18:52.634992342 +0800
@@ -613,7 +613,7 @@ class Log_event_footer {
log_pos |
- 4 byte unsigned integer |
+ 8 byte unsigned integer |
The position of the next event in the master binary log, in
bytes from the beginning of the file. In a binlog that is not a
relay log, this is just the position of the next event, in bytes
@@ -630,7 +630,7 @@ class Log_event_footer {
Summing up the numbers above, we see that the total size of the
- common header is 19 bytes.
+ common header is 23 bytes.
*/
class Log_event_header {
public:
diff -uprN data1/mysql-8.0.29/libbinlogevents/src/binlog_event.cpp data2/mysql-8.0.29/libbinlogevents/src/binlog_event.cpp
--- data1/mysql-8.0.29/libbinlogevents/src/binlog_event.cpp 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/libbinlogevents/src/binlog_event.cpp 2022-05-23 19:18:05.774403278 +0800
@@ -125,7 +125,7 @@ enum_binlog_checksum_alg Log_event_foote
@retval false as success
*/
bool Log_event_footer::event_checksum_test(unsigned char *event_buf,
- unsigned long event_len,
+ unsigned long long event_len,
enum_binlog_checksum_alg alg) {
bool res = false;
unsigned short flags = 0; // to store in FD's buffer flags orig value
@@ -196,7 +196,7 @@ Log_event_header::Log_event_header(Event
/**
@verbatim
- The first 19 bytes in the header is as follows:
+ The first 23 bytes in the header is as follows:
+============================================+
| member_variable offset : len |
+============================================+
@@ -208,11 +208,11 @@ Log_event_header::Log_event_header(Event
+--------------------------------------------+
| data_written EVENT_LEN_OFFSET(9) : 4 |
+--------------------------------------------+
- | log_pos LOG_POS_OFFSET(13) : 4 |
+ | log_pos LOG_POS_OFFSET(13) : 8 |
+--------------------------------------------+
- | flags FLAGS_OFFSET(17) : 2 |
+ | flags FLAGS_OFFSET(21) : 2 |
+--------------------------------------------+
- | extra_headers 19 : x-19|
+ | extra_headers 23 : x-23|
+============================================+
@endverbatim
*/
@@ -231,7 +231,7 @@ Log_event_header::Log_event_header(Event
reader.set_length(data_written);
BAPI_ASSERT(reader.position() == LOG_POS_OFFSET);
- log_pos = reader.read(4);
+ log_pos = reader.read(8);
BAPI_ASSERT(reader.position() == FLAGS_OFFSET);
flags = reader.read();
diff -uprN data1/mysql-8.0.29/plugin/semisync/semisync_source_plugin.cc data2/mysql-8.0.29/plugin/semisync/semisync_source_plugin.cc
--- data1/mysql-8.0.29/plugin/semisync/semisync_source_plugin.cc 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/plugin/semisync/semisync_source_plugin.cc 2022-05-23 19:22:27.391109073 +0800
@@ -162,7 +162,7 @@ static int repl_semi_binlog_dump_start(B
LogErr(INFORMATION_LEVEL, ER_SEMISYNC_START_BINLOG_DUMP_TO_SLAVE,
semi_sync_slave != 0 ? "semi-sync" : "asynchronous", param->server_id,
- log_file, (unsigned long)log_pos);
+ log_file, (unsigned longlong)log_pos);
return 0;
}
diff -uprN data1/mysql-8.0.29/sql/binlog.cc data2/mysql-8.0.29/sql/binlog.cc
--- data1/mysql-8.0.29/sql/binlog.cc 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/sql/binlog.cc 2022-05-23 19:16:39.236162162 +0800
@@ -1331,10 +1331,10 @@ class Binlog_event_writer : public Basic
bool have_checksum;
ha_checksum initial_checksum;
ha_checksum checksum;
- uint32 end_log_pos;
+ uint64 end_log_pos;
uchar header[LOG_EVENT_HEADER_LEN];
my_off_t header_len = 0;
- uint32 event_len = 0;
+ uint64 event_len = 0;
public:
/**
@@ -1356,21 +1356,22 @@ class Binlog_event_writer : public Basic
}
void update_header() {
- event_len = uint4korr(header + EVENT_LEN_OFFSET);
+ event_len = uint8korr(header + EVENT_LEN_OFFSET);
// Increase end_log_pos
end_log_pos += event_len;
// Update event length if it has checksum
if (have_checksum) {
- int4store(header + EVENT_LEN_OFFSET, event_len + BINLOG_CHECKSUM_LEN);
- end_log_pos += BINLOG_CHECKSUM_LEN;
+ int8store(header + EVENT_LEN_OFFSET, event_len + BINLOG_CHECKSUM_LEN+BINLOG_CHECKSUM_LEN);
+ end_log_pos += BINLOG_CHECKSUM_LEN*2;
}
// Store end_log_pos
- int4store(header + LOG_POS_OFFSET, end_log_pos);
+ int8store(header + LOG_POS_OFFSET, end_log_pos);
// update the checksum
if (have_checksum) checksum = my_checksum(checksum, header, header_len);
+
}
bool write(const unsigned char *buffer, my_off_t length) override {
diff -uprN data1/mysql-8.0.29/sql/log_event.cc data2/mysql-8.0.29/sql/log_event.cc
--- data1/mysql-8.0.29/sql/log_event.cc 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/sql/log_event.cc 2022-05-23 19:19:49.616492652 +0800
@@ -383,7 +383,7 @@ static void inline slave_rows_error_repo
: ER_UNKNOWN_ERROR,
"Could not execute %s event on table %s.%s;"
"%s handler error %s; "
- "the event's master log %s, end_log_pos %lu",
+ "the event's master log %s, end_log_pos %llu",
type, table->s->db.str, table->s->table_name.str, buff,
handler_error == nullptr ? "" : handler_error,
log_name, pos);
@@ -392,7 +392,7 @@ static void inline slave_rows_error_repo
thd->is_error() ? thd->get_stmt_da()->mysql_errno()
: ER_UNKNOWN_ERROR,
"Could not execute %s event on table %s.%s;"
- "%s the event's master log %s, end_log_pos %lu",
+ "%s the event's master log %s, end_log_pos %llu",
type, table->s->db.str, table->s->table_name.str, buff,
log_name, pos);
}
@@ -1175,12 +1175,12 @@ int Log_event::net_send(Protocol *protoc
void Log_event::init_show_field_list(mem_root_deque- *field_list) {
field_list->push_back(new Item_empty_string("Log_name", 20));
- field_list->push_back(new Item_return_int("Pos", MY_INT32_NUM_DECIMAL_DIGITS,
+ field_list->push_back(new Item_return_int("Pos", MY_INT64_NUM_DECIMAL_DIGITS,
MYSQL_TYPE_LONGLONG));
field_list->push_back(new Item_empty_string("Event_type", 20));
field_list->push_back(new Item_return_int("Server_id", 10, MYSQL_TYPE_LONG));
field_list->push_back(new Item_return_int(
- "End_log_pos", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG));
+ "End_log_pos", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG));
field_list->push_back(new Item_empty_string("Info", 20));
}
@@ -1326,8 +1326,8 @@ uint32 Log_event::write_header_to_memory
buf[EVENT_TYPE_OFFSET] = get_type_code();
int4store(buf + SERVER_ID_OFFSET, server_id);
int4store(buf + EVENT_LEN_OFFSET,
- static_cast(common_header->data_written));
- int4store(buf + LOG_POS_OFFSET, static_cast(common_header->log_pos));
+ static_cast(common_header->data_written));
+ int8store(buf + LOG_POS_OFFSET, static_cast(common_header->log_pos));
int2store(buf + FLAGS_OFFSET, common_header->flags);
return LOG_EVENT_HEADER_LEN;
@@ -1404,8 +1404,8 @@ void Log_event::print_header(IO_CACHE *f
my_b_printf(file, "#");
print_timestamp(file, nullptr);
- my_b_printf(file, " server id %lu end_log_pos %s ", (ulong)server_id,
- llstr(common_header->log_pos, llbuff));
+ my_b_printf(file, " server id %llu end_log_pos %s ", (ulong)server_id,
+ ullstr(common_header->log_pos, llbuff));
/* print the checksum */
@@ -2584,13 +2584,13 @@ static bool schedule_next_event(Log_even
switch (error) {
char llbuff[22];
case ER_MTS_CANT_PARALLEL:
- llstr(rli->get_event_relay_log_pos(), llbuff);
+ ullstr(rli->get_event_relay_log_pos(), llbuff);
my_error(ER_MTS_CANT_PARALLEL, MYF(0), ev->get_type_str(),
rli->get_event_relay_log_name(), llbuff,
"The master event is logically timestamped incorrectly.");
return true;
case ER_MTS_INCONSISTENT_DATA:
- llstr(rli->get_event_relay_log_pos(), llbuff);
+ ullstr(rli->get_event_relay_log_pos(), llbuff);
{
char errfmt[] =
"Coordinator experienced an error or was killed while scheduling "
@@ -2868,7 +2868,7 @@ Slave_worker *Log_event::get_slave_worke
rows- event load in insensetive to the flag value
*/
true, ret_worker))) {
- llstr(rli->get_event_relay_log_pos(), llbuff);
+ ullstr(rli->get_event_relay_log_pos(), llbuff);
my_error(ER_MTS_CANT_PARALLEL, MYF(0), get_type_str(),
rli->get_event_relay_log_name(), llbuff,
"could not distribute the event to a Worker");
@@ -2909,7 +2909,7 @@ Slave_worker *Log_event::get_slave_worke
is_ignorable_event())) {
assert(!ret_worker);
- llstr(rli->get_event_relay_log_pos(), llbuff);
+ ullstr(rli->get_event_relay_log_pos(), llbuff);
my_error(ER_MTS_CANT_PARALLEL, MYF(0), get_type_str(),
rli->get_event_relay_log_name(), llbuff,
"the event is a part of a group that is unsupported in "
@@ -3176,7 +3176,7 @@ int Log_event::apply_event(Relay_log_inf
MTS has to stop to suggest restart in the permanent sequential
mode.
*/
- llstr(rli->get_event_relay_log_pos(), llbuff);
+ ullstr(rli->get_event_relay_log_pos(), llbuff);
my_error(ER_MTS_CANT_PARALLEL, MYF(0), get_type_str(),
rli->get_event_relay_log_name(), llbuff,
"possible malformed group of events from an old master");
@@ -4571,7 +4571,7 @@ int Query_log_event::do_apply_event(Rela
"Error in cleaning up after an event preceding the commit; "
"the group log file/position: %s %s",
const_cast(rli)->get_group_master_log_name_info(),
- llstr(const_cast(rli)
+ ullstr(const_cast(rli)
->get_group_master_log_pos_info(),
llbuff));
}
@@ -5711,9 +5711,9 @@ int Rotate_log_event::do_update_pos(Rela
mysql_mutex_lock(&rli->data_lock);
DBUG_PRINT("info", ("old group_master_log_name: '%s' "
- "old group_master_log_pos: %lu",
+ "old group_master_log_pos: %llu",
rli->get_group_master_log_name(),
- (ulong)rli->get_group_master_log_pos()));
+ (ulonglong)rli->get_group_master_log_pos()));
memcpy(const_cast(rli->get_group_master_log_name()), new_log_ident,
ident_len + 1);
@@ -5734,7 +5734,7 @@ int Rotate_log_event::do_update_pos(Rela
}
DBUG_PRINT("info", ("new group_master_log_name: '%s' "
- "new group_master_log_pos: %lu",
+ "new group_master_log_pos: %llu",
rli->get_group_master_log_name(),
(ulong)rli->get_group_master_log_pos()));
mysql_mutex_unlock(&rli->data_lock);
@@ -8714,7 +8714,7 @@ int Rows_log_event::handle_idempotent_an
slave_rows_error_report(
ll, error, rli, thd, m_table, get_type_str(),
const_cast(rli)->get_rpl_log_name(),
- (ulong)common_header->log_pos);
+ (ulonglong)common_header->log_pos);
thd->get_stmt_da()->reset_condition_info(thd);
clear_all_errors(thd, const_cast(rli));
*err = 0;
@@ -10065,7 +10065,7 @@ int Rows_log_event::do_apply_event(Relay
slave_rows_error_report(
INFORMATION_LEVEL, error, rli, thd, table, get_type_str(),
const_cast(rli)->get_rpl_log_name(),
- (ulong)common_header->log_pos);
+ (ulonglong)common_header->log_pos);
thd->get_stmt_da()->reset_condition_info(thd);
clear_all_errors(thd, const_cast(rli));
error = 0;
@@ -10079,7 +10079,7 @@ int Rows_log_event::do_apply_event(Relay
slave_rows_error_report(
ERROR_LEVEL, error, rli, thd, table, get_type_str(),
const_cast(rli)->get_rpl_log_name(),
- (ulong)common_header->log_pos);
+ (ulonglong)common_header->log_pos);
/*
@todo We should probably not call
reset_current_stmt_binlog_format_row() from here.
@@ -10098,7 +10098,7 @@ end:
ERROR_LEVEL, thd->is_error() ? 0 : error, rli, thd, table,
get_type_str(),
const_cast(rli)->get_rpl_log_name(),
- (ulong)common_header->log_pos);
+ (ulonglong)common_header->log_pos);
else {
rli->report(
ERROR_LEVEL,
@@ -10109,7 +10109,7 @@ end:
thd->is_error() ? thd->get_stmt_da()->message_text()
: "unexpected error",
const_cast(rli)->get_rpl_log_name(),
- (ulong)common_header->log_pos);
+ (ulonglong)common_header->log_pos);
}
}
/* We are at end of the statement (STMT_END_F flag), lets clean
diff -uprN data1/mysql-8.0.29/sql/log_event.h data2/mysql-8.0.29/sql/log_event.h
--- data1/mysql-8.0.29/sql/log_event.h 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/sql/log_event.h 2022-05-23 19:19:58.309416421 +0800
@@ -738,7 +738,7 @@ class Log_event {
+---------+---------+---------+------------+-----------+-------+
|timestamp|type code|server_id|event_length|end_log_pos|flags |
- |4 bytes |1 byte |4 bytes |4 bytes |4 bytes |2 bytes|
+ |4 bytes |1 byte |4 bytes |4 bytes |8 bytes |2 bytes|
+---------+---------+---------+------------+-----------+-------+
@param buf Memory buffer to write to. This must be at least
diff -uprN data1/mysql-8.0.29/sql/rpl_binlog_sender.cc data2/mysql-8.0.29/sql/rpl_binlog_sender.cc
--- data1/mysql-8.0.29/sql/rpl_binlog_sender.cc 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/sql/rpl_binlog_sender.cc 2022-05-23 19:20:16.952252936 +0800
@@ -1028,7 +1028,7 @@ int Binlog_sender::fake_rotate_event(con
header[EVENT_TYPE_OFFSET] = binary_log::ROTATE_EVENT;
int4store(header + SERVER_ID_OFFSET, server_id);
int4store(header + EVENT_LEN_OFFSET, static_cast(event_len));
- int4store(header + LOG_POS_OFFSET, 0);
+ int8store(header + LOG_POS_OFFSET, 0);
int2store(header + FLAGS_OFFSET, LOG_EVENT_ARTIFICIAL_F);
int8store(rotate_header, log_pos);
@@ -1143,7 +1143,7 @@ int Binlog_sender::send_format_descripti
"log_pos=0", so the slave should not increment master's binlog position
(rli->group_master_log_pos)
*/
- int4store(event_ptr + LOG_POS_OFFSET, 0);
+ int8store(event_ptr + LOG_POS_OFFSET, 0);
/*
Set the 'created' field to 0 to avoid destroying
temp tables on slave.
@@ -1258,8 +1258,8 @@ int Binlog_sender::send_heartbeat_event_
int4store(header, 0);
header[EVENT_TYPE_OFFSET] = binary_log::HEARTBEAT_LOG_EVENT;
int4store(header + SERVER_ID_OFFSET, server_id);
- int4store(header + EVENT_LEN_OFFSET, event_len);
- int4store(header + LOG_POS_OFFSET, static_cast(log_pos));
+ int8store(header + EVENT_LEN_OFFSET, event_len);
+ int8store(header + LOG_POS_OFFSET, static_cast(log_pos));
int2store(header + FLAGS_OFFSET, 0);
memcpy(header + LOG_EVENT_HEADER_LEN, p, ident_len);
if (event_checksum_on()) calc_event_checksum(header, event_len);
@@ -1298,8 +1298,8 @@ int Binlog_sender::send_heartbeat_event_
int4store(header, 0);
header[EVENT_TYPE_OFFSET] = binary_log::HEARTBEAT_LOG_EVENT_V2;
int4store(header + SERVER_ID_OFFSET, server_id);
- int4store(header + EVENT_LEN_OFFSET, event_len);
- int4store(header + LOG_POS_OFFSET, static_cast(log_pos));
+ int8store(header + EVENT_LEN_OFFSET, event_len);
+ int8store(header + LOG_POS_OFFSET, static_cast(log_pos));
int2store(header + FLAGS_OFFSET, 0);
// set the effective length
diff -uprN data1/mysql-8.0.29/sql/rpl_mi.cc data2/mysql-8.0.29/sql/rpl_mi.cc
--- data1/mysql-8.0.29/sql/rpl_mi.cc 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/sql/rpl_mi.cc 2022-05-23 19:20:52.573940556 +0800
@@ -365,7 +365,7 @@ void Master_info::end_info() {
int Master_info::flush_info(bool force) {
DBUG_TRACE;
- DBUG_PRINT("enter", ("master_pos: %lu", (ulong)master_log_pos));
+ DBUG_PRINT("enter", ("master_pos: %llu", (ulonglong)master_log_pos));
bool skip_flushing = !inited;
/*
@@ -500,7 +500,7 @@ bool Master_info::read_info(Rpl_info_han
} else
lines = 7;
- if (!!from->get_info(&temp_master_log_pos, (ulong)BIN_LOG_HEADER_SIZE) ||
+ if (!!from->get_info(&temp_master_log_pos, (ulonglong)BIN_LOG_HEADER_SIZE) ||
!!from->get_info(host, sizeof(host), (char *)nullptr) ||
!!from->get_info(user, sizeof(user), (char *)nullptr) ||
!!from->get_info(password, sizeof(password), (char *)nullptr) ||
diff -uprN data1/mysql-8.0.29/sql/rpl_replica.cc data2/mysql-8.0.29/sql/rpl_replica.cc
--- data1/mysql-8.0.29/sql/rpl_replica.cc 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/sql/rpl_replica.cc 2022-05-23 19:21:13.950753095 +0800
@@ -465,13 +465,13 @@ int init_replica() {
default_mi = channel_map.get_default_channel_mi();
if (default_mi && default_mi->rli) {
DBUG_PRINT("info",
- ("init group master %s %lu group relay %s %lu event %s %lu\n",
+ ("init group master %s %llu group relay %s %llu event %s %llu\n",
default_mi->rli->get_group_master_log_name(),
- (ulong)default_mi->rli->get_group_master_log_pos(),
+ (ulonglong)default_mi->rli->get_group_master_log_pos(),
default_mi->rli->get_group_relay_log_name(),
- (ulong)default_mi->rli->get_group_relay_log_pos(),
+ (ulonglong)default_mi->rli->get_group_relay_log_pos(),
default_mi->rli->get_event_relay_log_name(),
- (ulong)default_mi->rli->get_event_relay_log_pos()));
+ (ulonglong)default_mi->rli->get_event_relay_log_pos()));
}
}
#endif
@@ -4554,10 +4554,10 @@ apply_event_and_update_pos(Log_event **p
if (!rli->belongs_to_client()) {
char buf[22];
DBUG_PRINT("info",
- ("group %s %s", llstr(rli->get_group_relay_log_pos(), buf),
+ ("group %s %s", ullstr(rli->get_group_relay_log_pos(), buf),
rli->get_group_relay_log_name()));
DBUG_PRINT("info",
- ("event %s %s", llstr(rli->get_event_relay_log_pos(), buf),
+ ("event %s %s", ullstr(rli->get_event_relay_log_pos(), buf),
rli->get_event_relay_log_name()));
}
#endif
@@ -4630,7 +4630,7 @@ apply_event_and_update_pos(Log_event **p
" be in an inconsistent state."
" Stopped in %s position %s",
rli->get_group_relay_log_name(),
- llstr(rli->get_group_relay_log_pos(), buf));
+ ullstr(rli->get_group_relay_log_pos(), buf));
return SLAVE_APPLY_EVENT_AND_UPDATE_POS_UPDATE_POS_ERROR;
}
}
@@ -5258,7 +5258,7 @@ extern "C" void *handle_slave_io(void *a
connect_init:
DBUG_PRINT("master_info",
("log_file_name: '%s' position: %s", mi->get_master_log_name(),
- llstr(mi->get_master_log_pos(), llbuff)));
+ ullstr(mi->get_master_log_pos(), llbuff)));
/* This must be called before run any binlog_relay_io hooks */
RPL_MASTER_INFO = mi;
@@ -5283,7 +5283,7 @@ extern "C" void *handle_slave_io(void *a
LogErr(SYSTEM_LEVEL, ER_RPL_SLAVE_CONNECTED_TO_MASTER_REPLICATION_STARTED,
mi->get_for_channel_str(), mi->get_user(), mi->host, mi->port,
mi->get_io_rpl_log_name(),
- llstr(mi->get_master_log_pos(), llbuff));
+ ullstr(mi->get_master_log_pos(), llbuff));
} else {
LogErr(INFORMATION_LEVEL, ER_RPL_SLAVE_IO_THREAD_KILLED,
mi->get_for_channel_str());
@@ -5638,7 +5638,7 @@ extern "C" void *handle_slave_io(void *a
// print the current replication position
LogErr(INFORMATION_LEVEL, ER_RPL_SLAVE_IO_THREAD_EXITING,
mi->get_for_channel_str(), mi->get_io_rpl_log_name(),
- llstr(mi->get_master_log_pos(), llbuff));
+ ullstr(mi->get_master_log_pos(), llbuff));
/* At this point the I/O thread will not try to reconnect anymore. */
mi->atomic_is_stopping = true;
(void)RUN_HOOK(binlog_relay_io, thread_stop, (thd, mi));
@@ -6977,7 +6977,7 @@ extern "C" void *handle_slave_sql(void *
DBUG_PRINT("master_info", ("log_file_name: %s position: %s",
rli->get_group_master_log_name(),
- llstr(rli->get_group_master_log_pos(), llbuff)));
+ ullstr(rli->get_group_master_log_pos(), llbuff)));
if (check_temp_dir(rli->slave_patternload_file, rli->get_channel())) {
rli->report(ERROR_LEVEL, thd->get_stmt_da()->mysql_errno(),
@@ -7006,16 +7006,16 @@ extern "C" void *handle_slave_sql(void *
if (rli->is_privilege_checks_user_null())
LogErr(INFORMATION_LEVEL, ER_RPL_SLAVE_SQL_THREAD_STARTING,
rli->get_for_channel_str(), rli->get_rpl_log_name(),
- llstr(rli->get_group_master_log_pos_info(), llbuff),
+ ullstr(rli->get_group_master_log_pos_info(), llbuff),
rli->get_group_relay_log_name(),
- llstr(rli->get_group_relay_log_pos(), llbuff1));
+ ullstr(rli->get_group_relay_log_pos(), llbuff1));
else
LogErr(INFORMATION_LEVEL,
ER_RPL_SLAVE_SQL_THREAD_STARTING_WITH_PRIVILEGE_CHECKS,
rli->get_for_channel_str(), rli->get_rpl_log_name(),
- llstr(rli->get_group_master_log_pos_info(), llbuff),
+ ullstr(rli->get_group_master_log_pos_info(), llbuff),
rli->get_group_relay_log_name(),
- llstr(rli->get_group_relay_log_pos(), llbuff1),
+ ullstr(rli->get_group_relay_log_pos(), llbuff1),
rli->get_privilege_checks_username().c_str(),
rli->get_privilege_checks_hostname().c_str(),
opt_always_activate_granted_roles == 0 ? "DEFAULT" : "ALL");
@@ -7060,12 +7060,12 @@ extern "C" void *handle_slave_sql(void *
THD_CHECK_SENTRY(thd);
if (saved_skip && rli->slave_skip_counter == 0) {
LogErr(INFORMATION_LEVEL, ER_RPL_SLAVE_SKIP_COUNTER_EXECUTED,
- (ulong)saved_skip, saved_log_name, (ulong)saved_log_pos,
+ (ulong)saved_skip, saved_log_name, (ulonglong)saved_log_pos,
saved_master_log_name, (ulong)saved_master_log_pos,
rli->get_group_relay_log_name(),
- (ulong)rli->get_group_relay_log_pos(),
+ (ulonglong)rli->get_group_relay_log_pos(),
rli->get_group_master_log_name_info(),
- (ulong)rli->get_group_master_log_pos_info());
+ (ulonglong)rli->get_group_master_log_pos_info());
saved_skip = 0;
}
@@ -7123,11 +7123,11 @@ extern "C" void *handle_slave_sql(void *
/* Thread stopped. Print the current replication position to the log */
if (slave_errno)
LogErr(ERROR_LEVEL, slave_errno, rli->get_rpl_log_name(),
- llstr(rli->get_group_master_log_pos_info(), llbuff));
+ ullstr(rli->get_group_master_log_pos_info(), llbuff));
else
LogErr(INFORMATION_LEVEL, ER_RPL_SLAVE_SQL_THREAD_EXITING,
rli->get_for_channel_str(), rli->get_rpl_log_name(),
- llstr(rli->get_group_master_log_pos_info(), llbuff));
+ ullstr(rli->get_group_master_log_pos_info(), llbuff));
delete rli->current_mts_submode;
rli->current_mts_submode = nullptr;
@@ -7282,7 +7282,7 @@ static int process_io_rotate(Master_info
rev->ident_len + 1);
mi->set_master_log_pos(rev->pos);
DBUG_PRINT("info",
- ("new (master_log_name, master_log_pos): ('%s', %lu)",
+ ("new (master_log_name, master_log_pos): ('%s', %llu)",
mi->get_master_log_name(), (ulong)mi->get_master_log_pos()));
mysql_mutex_unlock(&mi->data_lock);
@@ -7298,7 +7298,7 @@ int heartbeat_queue_event(bool is_valid,
sprintf(errbuf,
"inconsistent heartbeat event content; the event's data: "
"log_file_name %-.512s log_pos %s",
- binlog_name.c_str(), llstr(position, llbuf));
+ binlog_name.c_str(), ullstr(position, llbuf));
mi->report(ERROR_LEVEL, ER_SLAVE_HEARTBEAT_FAILURE,
ER_THD(current_thd, ER_SLAVE_HEARTBEAT_FAILURE), errbuf);
return 1;
@@ -7711,7 +7711,7 @@ QUEUE_EVENT_RESULT queue_event(Master_in
it), i.e. has end_log_pos=0, we do not increment
mi->get_master_log_pos()
*/
- inc_pos = uint4korr(buf + LOG_POS_OFFSET) ? event_len : 0;
+ inc_pos = uint8korr(buf + LOG_POS_OFFSET) ? event_len : 0;
DBUG_PRINT("info", ("binlog format is now %d",
mi->get_mi_description_event()->binlog_version));
@@ -7959,7 +7959,7 @@ QUEUE_EVENT_RESULT queue_event(Master_in
}
DBUG_PRINT(
"info",
- ("master_log_pos: %lu, event originating from %u server, ignored",
+ ("master_log_pos: %llu, event originating from %u server, ignored",
(ulong)mi->get_master_log_pos(), uint4korr(buf + SERVER_ID_OFFSET)));
} else {
bool is_error = false;
@@ -7973,7 +7973,7 @@ QUEUE_EVENT_RESULT queue_event(Master_in
lock_count = 2;
mi->set_master_log_pos(mi->get_master_log_pos() + inc_pos);
DBUG_PRINT("info",
- ("master_log_pos: %lu", (ulong)mi->get_master_log_pos()));
+ ("master_log_pos: %llu", (ulonglong)mi->get_master_log_pos()));
/*
If we are starting an anonymous transaction, we will discard
@@ -8337,7 +8337,7 @@ int connect_to_master(THD *thd, MYSQL *m
LogErr(
SYSTEM_LEVEL, ER_RPL_SLAVE_CONNECTED_TO_MASTER_REPLICATION_RESUMED,
mi->get_for_channel_str(), mi->get_user(), tmp_host, tmp_port,
- mi->get_io_rpl_log_name(), llstr(mi->get_master_log_pos(), llbuff));
+ mi->get_io_rpl_log_name(), ullstr(mi->get_master_log_pos(), llbuff));
} else {
query_logger.general_log_print(thd, COM_CONNECT_OUT, "%s@%s:%d",
mi->get_user(), tmp_host, tmp_port);
@@ -9469,7 +9469,7 @@ static int change_receive_options(THD *t
ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS,
ER_THD(thd, ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS));
- DBUG_PRINT("info", ("master_log_pos: %lu", (ulong)mi->get_master_log_pos()));
+ DBUG_PRINT("info", ("master_log_pos: %llu", (ulonglong)mi->get_master_log_pos()));
if (lex_mi->user || lex_mi->password) {
if (!thd->get_ssl()) {
@@ -10589,8 +10589,8 @@ int change_master(THD *thd, Master_info
if (have_receive_option)
LogErr(SYSTEM_LEVEL, ER_SLAVE_CHANGE_MASTER_TO_EXECUTED,
mi->get_for_channel_str(true), saved_host, saved_port,
- saved_log_name, (ulong)saved_log_pos, saved_bind_addr, mi->host,
- mi->port, mi->get_master_log_name(), (ulong)mi->get_master_log_pos(),
+ saved_log_name, (ulonglong)saved_log_pos, saved_bind_addr, mi->host,
+ mi->port, mi->get_master_log_name(), (ulonglong)mi->get_master_log_pos(),
mi->bind_addr);
/* If the receiver is stopped, flush master_info to disk. */
diff -uprN data1/mysql-8.0.29/sql/rpl_rli.cc data2/mysql-8.0.29/sql/rpl_rli.cc
--- data1/mysql-8.0.29/sql/rpl_rli.cc 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/sql/rpl_rli.cc 2022-05-23 19:21:26.412643813 +0800
@@ -585,7 +585,7 @@ void Relay_log_info::fill_coord_err_buf(
before reaching the desired log/position
*/
-int Relay_log_info::wait_for_pos(THD *thd, String *log_name, longlong log_pos,
+int Relay_log_info::wait_for_pos(THD *thd, String *log_name, ulonglong log_pos,
double timeout) {
int event_count = 0;
ulong init_abort_pos_wait;
@@ -596,8 +596,8 @@ int Relay_log_info::wait_for_pos(THD *th
if (!inited) return -2;
- DBUG_PRINT("enter", ("log_name: '%s' log_pos: %lu timeout: %lu",
- log_name->c_ptr_safe(), (ulong)log_pos, (ulong)timeout));
+ DBUG_PRINT("enter", ("log_name: '%s' log_pos: %llu timeout: %lu",
+ log_name->c_ptr_safe(), (ulonglong)log_pos, (ulong)timeout));
DEBUG_SYNC(thd, "begin_source_pos_wait");
@@ -640,7 +640,7 @@ int Relay_log_info::wait_for_pos(THD *th
goto err;
}
// Convert 0-3 to 4
- log_pos = max(log_pos, static_cast(BIN_LOG_HEADER_SIZE));
+ log_pos = max(log_pos, static_cast(BIN_LOG_HEADER_SIZE));
/* p points to '.' */
log_name_extension = strtoul(++p, &p_end, 10);
/*
@@ -661,8 +661,8 @@ int Relay_log_info::wait_for_pos(THD *th
DBUG_PRINT("info", ("init_abort_pos_wait: %ld abort_pos_wait: %ld",
init_abort_pos_wait, abort_pos_wait));
- DBUG_PRINT("info", ("group_master_log_name: '%s' pos: %lu",
- group_master_log_name, (ulong)group_master_log_pos));
+ DBUG_PRINT("info", ("group_master_log_name: '%s' pos: %llu",
+ group_master_log_name, (ulonglong)group_master_log_pos));
/*
group_master_log_name can be "", if we are just after a fresh
@@ -960,8 +960,8 @@ int Relay_log_info::inc_group_relay_log_
the relay log is not "val".
With the end_log_pos solution, we avoid computations involving lengthes.
*/
- DBUG_PRINT("info", ("log_pos: %lu group_master_log_pos: %lu", (long)log_pos,
- (long)group_master_log_pos));
+ DBUG_PRINT("info", ("log_pos: %llu group_master_log_pos: %llu", (ulonglong)log_pos,
+ (ulonglong)group_master_log_pos));
if (log_pos > 0) // 3.23 binlogs don't have log_posx
group_master_log_pos = log_pos;
@@ -2049,8 +2049,8 @@ void Relay_log_info::start_sql_delay(tim
bool Relay_log_info::read_info(Rpl_info_handler *from) {
int lines = 0;
char *first_non_digit = nullptr;
- ulong temp_group_relay_log_pos = 0;
- ulong temp_group_master_log_pos = 0;
+ ulonglong temp_group_relay_log_pos = 0;
+ ulonglong temp_group_master_log_pos = 0;
int temp_sql_delay = 0;
int temp_internal_id = internal_id;
int temp_require_row_format = 0;
@@ -2118,7 +2118,7 @@ bool Relay_log_info::read_info(Rpl_info_
DBUG_PRINT("info", ("relay_log_info file is in old format."));
status =
- from->get_info(&temp_group_relay_log_pos, (ulong)BIN_LOG_HEADER_SIZE);
+ from->get_info(&temp_group_relay_log_pos, (ulonglong)BIN_LOG_HEADER_SIZE);
if (status == Rpl_info_handler::enum_field_get_status::FAILURE) return true;
status =
@@ -2301,9 +2301,9 @@ bool Relay_log_info::write_info(Rpl_info
if (to->prepare_info_for_write() ||
to->set_info((int)MAXIMUM_LINES_IN_RELAY_LOG_INFO_FILE) ||
to->set_info(group_relay_log_name) ||
- to->set_info((ulong)group_relay_log_pos) ||
+ to->set_info((ulonglong)group_relay_log_pos) ||
to->set_info(group_master_log_name) ||
- to->set_info((ulong)group_master_log_pos) ||
+ to->set_info((ulonglong)group_master_log_pos) ||
to->set_info((int)sql_delay) || to->set_info(recovery_parallel_workers) ||
to->set_info((int)internal_id) || to->set_info(channel))
return true;
diff -uprN data1/mysql-8.0.29/sql/rpl_rli.h data2/mysql-8.0.29/sql/rpl_rli.h
--- data1/mysql-8.0.29/sql/rpl_rli.h 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/sql/rpl_rli.h 2022-05-23 19:21:24.569659975 +0800
@@ -994,7 +994,7 @@ class Relay_log_info : public Rpl_info {
int inc_group_relay_log_pos(ulonglong log_pos, bool need_data_lock,
bool force = false);
- int wait_for_pos(THD *thd, String *log_name, longlong log_pos,
+ int wait_for_pos(THD *thd, String *log_name, ulonglong log_pos,
double timeout);
/**
Wait for a GTID set to be executed.
diff -uprN data1/mysql-8.0.29/sql/rpl_rli_pdb.cc data2/mysql-8.0.29/sql/rpl_rli_pdb.cc
--- data1/mysql-8.0.29/sql/rpl_rli_pdb.cc 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/sql/rpl_rli_pdb.cc 2022-05-23 19:21:36.201557971 +0800
@@ -501,10 +501,10 @@ int Slave_worker::flush_info(const bool
bool Slave_worker::read_info(Rpl_info_handler *from) {
DBUG_TRACE;
- ulong temp_group_relay_log_pos = 0;
- ulong temp_group_master_log_pos = 0;
- ulong temp_checkpoint_relay_log_pos = 0;
- ulong temp_checkpoint_master_log_pos = 0;
+ ulonglong temp_group_relay_log_pos = 0;
+ ulonglong temp_group_master_log_pos = 0;
+ ulonglong temp_checkpoint_relay_log_pos = 0;
+ ulonglong temp_checkpoint_master_log_pos = 0;
ulong temp_checkpoint_seqno = 0;
ulong nbytes = 0;
uchar *buffer = (uchar *)group_executed.bitmap;
@@ -1728,7 +1728,7 @@ int Slave_worker::slave_worker_exec_even
}
set_future_event_relay_log_pos(ev->future_event_relay_log_pos);
- set_master_log_pos(static_cast(ev->common_header->log_pos));
+ set_master_log_pos(static_cast(ev->common_header->log_pos));
set_gaq_index(ev->mts_group_idx);
ret = ev->do_apply_event_worker(this);
return ret;
diff -uprN data1/mysql-8.0.29/sql/rpl_rli_pdb.h data2/mysql-8.0.29/sql/rpl_rli_pdb.h
--- data1/mysql-8.0.29/sql/rpl_rli_pdb.h 2022-03-23 21:52:57.000000000 +0800
+++ data2/mysql-8.0.29/sql/rpl_rli_pdb.h 2022-05-23 19:21:36.173558216 +0800
@@ -633,7 +633,7 @@ class Slave_worker : public Relay_log_in
void slave_worker_ends_group(Log_event *, int);
const char *get_master_log_name();
ulonglong get_master_log_pos() { return master_log_pos; }
- ulonglong set_master_log_pos(ulong val) { return master_log_pos = val; }
+ ulonglong set_master_log_pos(ulonglong val) { return master_log_pos = val; }
bool commit_positions(Log_event *evt, Slave_job_group *ptr_g, bool force);
/**
The method is a wrapper to provide uniform interface with STS and is
|