Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL)
Description
The fix of bug MDEV-21572 introduced a rarely holding condition in a commonly executed function buf_page_get_gen(), which is only needed while crash recovery is in progress.
Before the last recovery batch is completed by invoking recv_sys.apply(true), we have the following accesses to the buffer pool:
- Reading the TRX_SYS page (page 5 in the system tablespace) to determine the number of undo tablespaces.
- Reading the DICT_HDR page (page 7 in the system tablespace) to initialize the maximum tablespace identifier, in dict_boot()
- Before
MDEV-29694(MariaDB Server 11.0), reading at least 3 pages to initialize the change buffer. - Loading the definitions of some system tables. This can be deferred after recv_sys.apply(true) has been called.
If we write a separate function that will be used for these 2 special cases of page access, we can simplify the function buf_page_get_gen(). Furthermore, the function buf_flush_LRU_list_batch() may be simplified so that it can enforce the innodb_io_capacity rate limit during recovery, because recv_sys_t::wait_for_pool() (MDEV-29911) would be able to ensure that enough buffer pool is available.
Attachments
Issue Links
- causes
-
MDEV-34212 InnoDB transaction recovery is incorrect
-
- Closed
-
- is blocked by
-
MDEV-29694 Remove the InnoDB change buffer
-
- Closed
-
-
MDEV-29911 InnoDB recovery and mariadb-backup --prepare fail to report detailed progress
-
- Closed
-
- is caused by
-
MDEV-21572 buf_page_get_gen() should apply buffered page initialized redo log during recovery
-
- Closed
-
- relates to
-
MDEV-32029 Assertion failures in log_sort_flush_list upon crash recovery
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue is caused by |
Link |
This issue is blocked by |
Link |
This issue is blocked by |
Link |
This issue relates to |
Status | Open [ 1 ] | In Progress [ 3 ] |
Description |
The fix of bug Before the last recovery batch is completed by invoking {{recv_sys.apply(true)}}, we have the following accesses to the buffer pool: * Reading the {{TRX_SYS}} page (page 5 in the system tablespace) to determine the number of undo tablespaces. * Reading the {{DICT_HDR}} page (page 7 in the system tablespace) to initialize the maximum tablespace identifier, in {{dict_boot()}} * Before * Loading the definitions of some system tables. This can be deferred after {{recv_sys.apply(true)}} has been called. If we write a separate function that will be used for these 2 special cases of page access, we can simplify the function {{buf_page_get_gen()}}. Furthermore, the function {{buf_flush_LRU_list_batch()}} may be simplified so that it can enforce the {{innodb_io_capacity}} rate limit during recovery, because {{recv_sys_t::wait_for_pool()}} ( |
The fix of bug Before the last recovery batch is completed by invoking {{recv_sys.apply(true)}}, we have the following accesses to the buffer pool: * Reading the {{TRX_SYS}} page (page 5 in the system tablespace) to determine the number of undo tablespaces. * Reading the {{DICT_HDR}} page (page 7 in the system tablespace) to initialize the maximum tablespace identifier, in {{dict_boot()}} * Before * Loading the definitions of some system tables. This can be deferred after {{recv_sys.apply(true)}} has been called. If we write a separate function that will be used for these 2 special cases of page access, we can simplify the function {{buf_page_get_gen()}}. Furthermore, the function {{buf_flush_LRU_list_batch()}} may be simplified so that it can enforce the {{innodb_io_capacity}} rate limit during recovery, because {{recv_sys_t::wait_for_pool()}} ( |
Assignee | Marko Mäkelä [ marko ] | Thirunarayanan Balathandayuthapani [ thiru ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Assignee | Thirunarayanan Balathandayuthapani [ thiru ] | Marko Mäkelä [ marko ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
issue.field.resolutiondate | 2023-12-07 14:38:08.0 | 2023-12-07 14:38:07.75 |
Fix Version/s | 11.0.5 [ 29520 ] | |
Fix Version/s | 11.1.4 [ 29024 ] | |
Fix Version/s | 11.2.3 [ 29521 ] | |
Fix Version/s | 11.0 [ 28320 ] | |
Fix Version/s | 11.1 [ 28549 ] | |
Fix Version/s | 11.2 [ 28603 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Link |
This issue causes |
origin/11.0-
MDEV-32042e1fb69d6a535a6825a0f151b532ae0dc071b01bd 2023-12-01T11:42:00+02:00performed well in RQG testing.