MDEV-34705: Binlog-in-engine: Handful of fixes

Fix missing WORDS_BIGENDIAN define in ut0compr_int.cc.

Fix misaligned read buffer for O_DIRECT.

Fix wrong/missing update_binlog_end_pos() in binlog group commit.

Fix race where active_binlog_file_no incremented too early.

Fix wrong assertion when reader reaches the very start of (active+1).

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
This commit is contained in:
Kristian Nielsen 2025-01-22 18:20:32 +00:00
commit ff2b101609
4 changed files with 35 additions and 8 deletions

View file

@ -696,8 +696,9 @@ innodb_binlog_discover()
*/
fil_space_t *space, *prev_space;
uint32_t page_no, prev_page_no, pos_in_page, prev_pos_in_page;
// ToDo: Do we need aligned_malloc() for page_buf, to be able to read a page into it (like IO_DIRECT maybe) ?
std::unique_ptr<byte[]> page_buf(new byte[page_size]);
std::unique_ptr<byte, void (*)(void *)>
page_buf(static_cast<byte*>(aligned_malloc(page_size, page_size)),
&aligned_free);
if (!page_buf)
return -1;
if (binlog_files.found_binlogs >= 1) {