Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.11.2, 10.6.12, 10.8.7, 10.9.5, 10.10.3, 10.7(EOL), 11.0(EOL), 11.1(EOL), 11.2(EOL), 11.3(EOL), 11.4, 11.5(EOL)
Description
In MDEV-30400 the function btr_cur_t::search_leaf() replaced the function btr_cur_search_to_nth_level() for the case level=0. That code was revised in MDEV-29385 with regard to the function btr_cur_need_opposite_intention().
Upon reaching the leaf level, one call to btr_cur_need_opposite_intention() is misplaced. Before these changes, btr_cur_search_to_nth_level() would invoke btr_cur_need_opposite_intention() after positioning page_cur_t::rec on the current page. As a result of the misplaced call, the calls to page_rec_is_last() and page_rec_is_first() would never seem to hold, because the page and rec would be within different buffer pool blocks.
The purpose of the function btr_cur_need_opposite_intention() is to detect when a page split could occur. As far as I can tell, this bug could cause a hang similar to the ones that the fix of MDEV-29835 attempted to address. Possibly, this bug could explain MDEV-31815.
Attachments
Issue Links
- relates to
-
MDEV-29835 Partial server freeze
-
- Closed
-
-
MDEV-30400 Assertion `height == btr_page_get_level(page_cur_get_page(page_cursor))' failed in btr_cur_search_to_nth_level on INSERT
-
- Closed
-
-
MDEV-31815 Assertion `mtr->memo_contains(index->lock, MTR_MEMO_X_LOCK)' failed in btr_attach_half_pages on INSERT (2k threads)
-
- Open
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue relates to |
Link |
This issue relates to |
Link | This issue relates to MDEV-31815 [ MDEV-31815 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Assignee | Marko Mäkelä [ marko ] | Debarun Banerjee [ JIRAUSER54513 ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Assignee | Debarun Banerjee [ JIRAUSER54513 ] | Marko Mäkelä [ marko ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Fix Version/s | 10.6.19 [ 29833 ] | |
Fix Version/s | 10.11.9 [ 29834 ] | |
Fix Version/s | 11.1.6 [ 29835 ] | |
Fix Version/s | 11.2.5 [ 29836 ] | |
Fix Version/s | 11.4.3 [ 29837 ] | |
Fix Version/s | 11.5.2 [ 29838 ] | |
Fix Version/s | 10.6 [ 24028 ] | |
Fix Version/s | 10.11 [ 27614 ] | |
Fix Version/s | 11.4 [ 29301 ] | |
Fix Version/s | 11.5 [ 29506 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
The patch looks straight forward. Can you please see if a testcase/scenario can be created that can validate the patch ? Other than validation, it would also help us map any customer issue that is possibly caused by it.