- Notifications
You must be signed in to change notification settings - Fork28
Commit395249e
committed
Several changes to reduce the probability of running out of memory during
AbortTransaction, which would lead to recursion and eventual PANIC exitas illustrated in recent report from Jeff Davis. First, in xact.c createa special dedicated memory context for AbortTransaction to run in. Thissolves the problem as long as AbortTransaction doesn't need more than 32K(or whatever other size we create the context with). But in corner casesit might. Second, in trigger.c arrange to keep pending after-trigger eventrecords in separate contexts that can be freed near the beginning ofAbortTransaction, rather than having them persist until CleanupTransactionas before. Third, in portalmem.c arrange to free executor state dataearlier as well. These two changes should result in backing off theout-of-memory condition before AbortTransaction needs any significantamount of memory, at least in typical cases such as memory overrun dueto too many trigger events or too big an executor hash table. And allthe same for subtransaction abort too, of course.1 parent2a55984 commit395249e
File tree
3 files changed
+155
-50
lines changed- src/backend
- access/transam
- commands
- utils/mmgr
3 files changed
+155
-50
lines changedLines changed: 61 additions & 31 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
10 | 10 |
| |
11 | 11 |
| |
12 | 12 |
| |
13 |
| - | |
| 13 | + | |
14 | 14 |
| |
15 | 15 |
| |
16 | 16 |
| |
| |||
171 | 171 |
| |
172 | 172 |
| |
173 | 173 |
| |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
174 | 180 |
| |
175 | 181 |
| |
176 | 182 |
| |
| |||
555 | 561 |
| |
556 | 562 |
| |
557 | 563 |
| |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
558 | 579 |
| |
559 | 580 |
| |
560 | 581 |
| |
| |||
1086 | 1107 |
| |
1087 | 1108 |
| |
1088 | 1109 |
| |
1089 |
| - | |
1090 |
| - | |
1091 |
| - | |
1092 |
| - | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
1093 | 1116 |
| |
1094 |
| - | |
1095 |
| - | |
1096 |
| - | |
1097 |
| - | |
1098 |
| - | |
1099 |
| - | |
1100 |
| - | |
1101 |
| - | |
1102 |
| - | |
| 1117 | + | |
| 1118 | + | |
1103 | 1119 |
| |
1104 | 1120 |
| |
1105 | 1121 |
| |
| |||
1110 | 1126 |
| |
1111 | 1127 |
| |
1112 | 1128 |
| |
1113 |
| - | |
| 1129 | + | |
1114 | 1130 |
| |
1115 |
| - | |
| 1131 | + | |
1116 | 1132 |
| |
1117 | 1133 |
| |
1118 | 1134 |
| |
| |||
1272 | 1288 |
| |
1273 | 1289 |
| |
1274 | 1290 |
| |
| 1291 | + | |
| 1292 | + | |
1275 | 1293 |
| |
1276 | 1294 |
| |
1277 | 1295 |
| |
1278 | 1296 |
| |
1279 | 1297 |
| |
1280 | 1298 |
| |
1281 |
| - | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
1282 | 1304 |
| |
1283 | 1305 |
| |
1284 | 1306 |
| |
| |||
1310 | 1332 |
| |
1311 | 1333 |
| |
1312 | 1334 |
| |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
1313 | 1341 |
| |
1314 | 1342 |
| |
1315 | 1343 |
| |
| |||
1849 | 1877 |
| |
1850 | 1878 |
| |
1851 | 1879 |
| |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
| 1883 | + | |
1852 | 1884 |
| |
1853 | 1885 |
| |
1854 | 1886 |
| |
| |||
1881 | 1913 |
| |
1882 | 1914 |
| |
1883 | 1915 |
| |
1884 |
| - | |
1885 |
| - | |
1886 |
| - | |
1887 |
| - | |
1888 | 1916 |
| |
1889 | 1917 |
| |
1890 | 1918 |
| |
| |||
3704 | 3732 |
| |
3705 | 3733 |
| |
3706 | 3734 |
| |
3707 |
| - | |
3708 |
| - | |
3709 |
| - | |
3710 |
| - | |
3711 |
| - | |
3712 |
| - | |
| 3735 | + | |
3713 | 3736 |
| |
3714 | 3737 |
| |
3715 |
| - | |
| 3738 | + | |
| 3739 | + | |
| 3740 | + | |
3716 | 3741 |
| |
3717 | 3742 |
| |
3718 | 3743 |
| |
| |||
3731 | 3756 |
| |
3732 | 3757 |
| |
3733 | 3758 |
| |
3734 |
| - | |
| 3759 | + | |
3735 | 3760 |
| |
3736 |
| - | |
3737 |
| - | |
| 3761 | + | |
| 3762 | + | |
| 3763 | + | |
| 3764 | + | |
| 3765 | + | |
| 3766 | + | |
| 3767 | + | |
3738 | 3768 |
| |
3739 | 3769 |
| |
3740 | 3770 |
| |
|
Lines changed: 76 additions & 17 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
7 | 7 |
| |
8 | 8 |
| |
9 | 9 |
| |
10 |
| - | |
| 10 | + | |
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
| |||
1801 | 1801 |
| |
1802 | 1802 |
| |
1803 | 1803 |
| |
1804 |
| - | |
1805 |
| - | |
| 1804 | + | |
| 1805 | + | |
1806 | 1806 |
| |
1807 | 1807 |
| |
1808 | 1808 |
| |
| |||
1889 | 1889 |
| |
1890 | 1890 |
| |
1891 | 1891 |
| |
1892 |
| - | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
1893 | 1896 |
| |
1894 | 1897 |
| |
1895 | 1898 |
| |
| |||
1931 | 1934 |
| |
1932 | 1935 |
| |
1933 | 1936 |
| |
| 1937 | + | |
| 1938 | + | |
1934 | 1939 |
| |
1935 | 1940 |
| |
1936 | 1941 |
| |
| |||
2464 | 2469 |
| |
2465 | 2470 |
| |
2466 | 2471 |
| |
| 2472 | + | |
| 2473 | + | |
| 2474 | + | |
2467 | 2475 |
| |
| 2476 | + | |
2468 | 2477 |
| |
2469 | 2478 |
| |
2470 | 2479 |
| |
| |||
2626 | 2635 |
| |
2627 | 2636 |
| |
2628 | 2637 |
| |
2629 |
| - | |
| 2638 | + | |
| 2639 | + | |
| 2640 | + | |
| 2641 | + | |
| 2642 | + | |
| 2643 | + | |
| 2644 | + | |
| 2645 | + | |
2630 | 2646 |
| |
| 2647 | + | |
| 2648 | + | |
| 2649 | + | |
2631 | 2650 |
| |
2632 | 2651 |
| |
2633 | 2652 |
| |
| |||
2649 | 2668 |
| |
2650 | 2669 |
| |
2651 | 2670 |
| |
2652 |
| - | |
| 2671 | + | |
| 2672 | + | |
| 2673 | + | |
| 2674 | + | |
2653 | 2675 |
| |
2654 | 2676 |
| |
2655 | 2677 |
| |
| |||
2660 | 2682 |
| |
2661 | 2683 |
| |
2662 | 2684 |
| |
| 2685 | + | |
| 2686 | + | |
2663 | 2687 |
| |
2664 | 2688 |
| |
2665 | 2689 |
| |
| |||
2677 | 2701 |
| |
2678 | 2702 |
| |
2679 | 2703 |
| |
| 2704 | + | |
| 2705 | + | |
| 2706 | + | |
2680 | 2707 |
| |
2681 | 2708 |
| |
2682 | 2709 |
| |
| |||
2695 | 2722 |
| |
2696 | 2723 |
| |
2697 | 2724 |
| |
2698 |
| - | |
| 2725 | + | |
| 2726 | + | |
2699 | 2727 |
| |
| 2728 | + | |
2700 | 2729 |
| |
2701 | 2730 |
| |
2702 | 2731 |
| |
| |||
2742 | 2771 |
| |
2743 | 2772 |
| |
2744 | 2773 |
| |
2745 |
| - | |
| 2774 | + | |
| 2775 | + | |
| 2776 | + | |
| 2777 | + | |
| 2778 | + | |
| 2779 | + | |
| 2780 | + | |
| 2781 | + | |
| 2782 | + | |
| 2783 | + | |
| 2784 | + | |
| 2785 | + | |
| 2786 | + | |
| 2787 | + | |
| 2788 | + | |
| 2789 | + | |
| 2790 | + | |
2746 | 2791 |
| |
2747 | 2792 |
| |
2748 | 2793 |
| |
| |||
2753 | 2798 |
| |
2754 | 2799 |
| |
2755 | 2800 |
| |
2756 |
| - | |
2757 |
| - | |
2758 |
| - | |
2759 |
| - | |
2760 |
| - | |
2761 | 2801 |
| |
2762 | 2802 |
| |
2763 | 2803 |
| |
| |||
3204 | 3244 |
| |
3205 | 3245 |
| |
3206 | 3246 |
| |
| 3247 | + | |
| 3248 | + | |
3207 | 3249 |
| |
3208 | 3250 |
| |
3209 | 3251 |
| |
| |||
3294 | 3336 |
| |
3295 | 3337 |
| |
3296 | 3338 |
| |
3297 |
| - | |
3298 |
| - | |
| 3339 | + | |
| 3340 | + | |
| 3341 | + | |
| 3342 | + | |
| 3343 | + | |
| 3344 | + | |
| 3345 | + | |
| 3346 | + | |
| 3347 | + | |
| 3348 | + | |
| 3349 | + | |
| 3350 | + | |
| 3351 | + | |
| 3352 | + | |
| 3353 | + | |
| 3354 | + | |
| 3355 | + | |
| 3356 | + | |
| 3357 | + | |
| 3358 | + | |
3299 | 3359 |
| |
3300 | 3360 |
| |
3301 |
| - | |
3302 |
| - | |
| 3361 | + | |
3303 | 3362 |
| |
3304 | 3363 |
| |
3305 | 3364 |
| |
|
0 commit comments
Comments
(0)