[MDEV-4791] Assertion range_end >= range_start fails in log0online.c on select from I_S.INNODB_CHANGED_PAGES Created: 2013-07-17 Updated: 2014-08-21 Resolved: 2014-08-13 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 5.5.32, 10.0.10 |
| Fix Version/s: | 5.5.38, 10.0.11 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Elena Stepanova | Assignee: | Jan Lindström (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | upstream, xtradb | ||
| Attachments: |
|
||||||||||||||||
| Issue Links: |
|
||||||||||||||||
| Description |
|
Introduced with the latest XtraDB merge. Reproducible on the current percona-server-5.5.
Test case:
bzr version-info
|
| Comments |
| Comment by Sergei Petrunia [ 2014-05-08 ] | ||||||||||||||||||||
|
A patch that fixes this (without the testcase) | ||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2014-05-09 ] | ||||||||||||||||||||
|
For 5.5: revno: 4188 Analysis: limit_lsn_range_from_condition() incorrectly parses Fix from SergeyP. Added some test cases. | ||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2014-05-09 ] | ||||||||||||||||||||
|
10.0: revno: 4207 Analysis: limit_lsn_range_from_condition() incorrectly parses Fix from SergeyP. Added some test cases. | ||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2014-05-09 ] | ||||||||||||||||||||
|
Send fix candidates to Percona. | ||||||||||||||||||||
| Comment by Laurynas Biveinis [ 2014-06-10 ] | ||||||||||||||||||||
|
Jan, Sergei - thank your for the patch. I am working on it now and have a few questions/comments on https://launchpadlibrarian.net/175006985/patch_55.diff.
Thanks again | ||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-06-19 ] | ||||||||||||||||||||
|
Hi Laurynas,
Apparently, not. When I was coding my fix, I didn't make any assumptions about the order the records will come in (or even that end_lsn > start_lsn for any given record). Having studied http://www.slideshare.net/kastauyra/bitmap-33283809 and also how i_s_innodb_changed_pages_fill() uses the upper/lower bound, I will agree that it turns out it's acceptable in this case to use "start_lsn < X" to get upper bound and use "end_lsn>Y" to generate lower bound.
Agree. This is the best solution, then I guess, you will use this above patch? We should switch to it also, then. | ||||||||||||||||||||
| Comment by Laurynas Biveinis [ 2014-06-21 ] | ||||||||||||||||||||
|
Sergei - Yes, I am going to use the above patch unless something else comes up during testing. I will let you know. | ||||||||||||||||||||
| Comment by Laurynas Biveinis [ 2014-07-16 ] | ||||||||||||||||||||
|
The above fix has been merged to our 5.5 and 5.6. Your testcase innodb-changed-pages was folded into percona_changed_pages. | ||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-08-02 ] | ||||||||||||||||||||
|
Laurynas, thanks for the info! | ||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2014-08-13 ] | ||||||||||||||||||||
|
Will be fixed on XtraDB merge. |