Commit 4dcd2d8
MDEV-37412 Corrupted page during recovery aborts the server
Problem:
=======
When InnoDB encounters a corrupted page during crash recovery,
server would abort due to improper handling of page locks
and space references. The recovery process was not properly
cleaning up resources when corruption was detected,
leading to inconsistent state and server termination.
Solution:
=========
recover_low(): Move page lock recursive acquisition
after deferred/non-deferred page creation logic to
ensure consistent locking behavior for both code paths.
Ensure proper block recursive unlock for non-deferred tablespaces
recv_recover_page(): Simplify corrupted page cleanup by
removing redundant space reference handling.1 parent c40402e commit 4dcd2d8
File tree
3 files changed
+34
-11
lines changed- mysql-test/suite/innodb
- r
- t
- storage/innobase/log
3 files changed
+34
-11
lines changedLines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
7 | 16 | | |
8 | 17 | | |
9 | 18 | | |
| |||
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
24 | 37 | | |
25 | 38 | | |
| 39 | + | |
| 40 | + | |
26 | 41 | | |
27 | 42 | | |
28 | 43 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3041 | 3041 | | |
3042 | 3042 | | |
3043 | 3043 | | |
| 3044 | + | |
| 3045 | + | |
| 3046 | + | |
| 3047 | + | |
3044 | 3048 | | |
3045 | 3049 | | |
3046 | 3050 | | |
| |||
3112 | 3116 | | |
3113 | 3117 | | |
3114 | 3118 | | |
3115 | | - | |
3116 | | - | |
3117 | | - | |
3118 | | - | |
3119 | 3119 | | |
3120 | 3120 | | |
3121 | 3121 | | |
3122 | | - | |
3123 | | - | |
3124 | | - | |
3125 | | - | |
3126 | 3122 | | |
3127 | 3123 | | |
3128 | 3124 | | |
| |||
3524 | 3520 | | |
3525 | 3521 | | |
3526 | 3522 | | |
3527 | | - | |
3528 | 3523 | | |
3529 | 3524 | | |
3530 | 3525 | | |
| |||
3544 | 3539 | | |
3545 | 3540 | | |
3546 | 3541 | | |
3547 | | - | |
3548 | 3542 | | |
3549 | 3543 | | |
3550 | 3544 | | |
| |||
3563 | 3557 | | |
3564 | 3558 | | |
3565 | 3559 | | |
| 3560 | + | |
| 3561 | + | |
3566 | 3562 | | |
3567 | 3563 | | |
3568 | 3564 | | |
| |||
3571 | 3567 | | |
3572 | 3568 | | |
3573 | 3569 | | |
| 3570 | + | |
3574 | 3571 | | |
3575 | | - | |
| 3572 | + | |
| 3573 | + | |
| 3574 | + | |
3576 | 3575 | | |
3577 | 3576 | | |
3578 | 3577 | | |
| |||
0 commit comments