MDEV-40070 innodb_log_archive multi-batch recovery crash#5249
Conversation
|
|
There was a problem hiding this comment.
Code Review
This pull request modifies the recovery logic in storage/innobase/log/log0recv.cc to conditionally complete the archived mmap switch and assert an out-of-memory status (GOT_OOM) if the switch is not active. The reviewer suggests a more robust approach by checking r != GOT_OOM as the primary condition, which ensures the switch is only completed on successful paths and prevents potential issues if the switch was not properly aborted during an OOM scenario.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
recv_sys_t::parse_mmap(): When the current mini-transaction spans two log files and we run out of memory while attempting to store the parsed records into recv_sys.pages, the next log file would already have been closed by recv_sys_t::rewind(). Handle this condition specially.
|
The approved change 15f09a1 was pushed to the 13.0 branch with that commit hash. I had forgotten to adjust the correct target branch; it defaulted to |
recv_sys_t::parse_mmap(): When the current mini-transaction spans two log files and we run out of memory while attempting to store the parsed records intorecv_sys.pages, the next log file would already have been closed byrecv_sys_t::rewind(). Handle this condition specially.This fixes a regression that was introduced in #4405. A copy of a data directory with which this crash was reproduced is available in MDEV-40070.