Details
Description
Currently, the code relies on big stack buffers for temporary data.
This leads to stack overflow crashes.
In my case, on my system, the stack limit is 8192, whereas below, more is requested.
Example:
static bool page_is_corrupted(const byte *page, ulint page_no, |
const xb_fil_cur_t *cursor, |
const fil_space_t *space) |
{
|
byte tmp_frame[UNIV_PAGE_SIZE_MAX];
|
byte tmp_page[UNIV_PAGE_SIZE_MAX];
|
|
Perhaps threadlocal static- or heap buffers should be used instead
Attachments
Issue Links
- includes
-
MDEV-35022 Fix Overuse of big stackvariables results inside InnoDB & Mariabackup
- Open
- is caused by
-
MDEV-12112 corruption in encrypted table may be overlooked
- Closed
-
MDEV-18025 Mariabackup fails to detect corrupted page_compressed=1 tables
- Closed