forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit3a01f68
committed
Check for interrupts inside the nbtree page deletion code.
When deleting pages the nbtree code has to walk through siblings of atree node. When those sibling links are corrupted that can lead toendless loops - which are currently not interruptible. This isespecially problematic if autovacuum is repeatedly blocked on suchindexes, as it can be hard to get out of that situation withoutresorting to single user mode.Thus add interrupt checks to appropriate places in suchloops. Unfortunately in one of the cases it's it's not easy to do so.Between 9.3 and 9.4 the page deletion (and page split) code changedsignificantly. Before it was significantly less robust againstinterruptions. Therefore don't backpatch to 9.3.Author: Andres FreundDiscussion:https://postgr.es/m/20180627191629.wkunw2qbibnvlz53@alap3.anarazel.deBackpatch: 9.4-1 parentb416691 commit3a01f68
1 file changed
+21
-0
lines changedLines changed: 21 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1443 | 1443 |
| |
1444 | 1444 |
| |
1445 | 1445 |
| |
| 1446 | + | |
1446 | 1447 |
| |
1447 | 1448 |
| |
1448 | 1449 |
| |
| |||
1455 | 1456 |
| |
1456 | 1457 |
| |
1457 | 1458 |
| |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
1458 | 1465 |
| |
1459 | 1466 |
| |
1460 | 1467 |
| |
| |||
1707 | 1714 |
| |
1708 | 1715 |
| |
1709 | 1716 |
| |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
1710 | 1723 |
| |
1711 | 1724 |
| |
1712 | 1725 |
| |
| |||
1766 | 1779 |
| |
1767 | 1780 |
| |
1768 | 1781 |
| |
| 1782 | + | |
| 1783 | + | |
| 1784 | + | |
| 1785 | + | |
| 1786 | + | |
| 1787 | + | |
| 1788 | + | |
| 1789 | + | |
1769 | 1790 |
| |
1770 | 1791 |
| |
1771 | 1792 |
| |
|
0 commit comments
Comments
(0)