Commit 6db9928
committed
Prevent excess SimpleLruTruncate() deletion.
Every core SLRU wraps around. With the exception of pg_notify, the wrap
point can fall in the middle of a page. Account for this in the
PagePrecedes callback specification and in SimpleLruTruncate()'s use of
said callback. Update each callback implementation to fit the new
specification. This changes SerialPagePrecedesLogically() from the
style of asyncQueuePagePrecedes() to the style of CLOGPagePrecedes().
(Whereas pg_clog and pg_serial share a key space, pg_serial is nothing
like pg_notify.) The bug fixed here has the same symptoms and user
followup steps as 592a589. Back-patch
to 9.5 (all supported versions).
Reviewed by Andrey Borodin and (in earlier versions) by Tom Lane.
Discussion: https://postgr.es/m/20190202083822.GC32531@gust.leadboat.com1 parent c95765f commit 6db9928
File tree
8 files changed
+314
-80
lines changed- src
- backend
- access/transam
- commands
- storage/lmgr
- include/access
8 files changed
+314
-80
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
694 | 694 | | |
695 | 695 | | |
696 | 696 | | |
| 697 | + | |
697 | 698 | | |
698 | 699 | | |
699 | 700 | | |
| |||
912 | 913 | | |
913 | 914 | | |
914 | 915 | | |
915 | | - | |
| 916 | + | |
916 | 917 | | |
917 | 918 | | |
918 | | - | |
919 | | - | |
920 | | - | |
921 | | - | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
922 | 932 | | |
923 | 933 | | |
924 | 934 | | |
| |||
927 | 937 | | |
928 | 938 | | |
929 | 939 | | |
930 | | - | |
| 940 | + | |
931 | 941 | | |
932 | | - | |
| 942 | + | |
933 | 943 | | |
934 | | - | |
| 944 | + | |
| 945 | + | |
935 | 946 | | |
936 | 947 | | |
937 | 948 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
557 | 557 | | |
558 | 558 | | |
559 | 559 | | |
| 560 | + | |
560 | 561 | | |
561 | 562 | | |
562 | 563 | | |
| |||
927 | 928 | | |
928 | 929 | | |
929 | 930 | | |
930 | | - | |
931 | | - | |
| 931 | + | |
| 932 | + | |
932 | 933 | | |
933 | | - | |
934 | | - | |
935 | | - | |
936 | | - | |
937 | | - | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
938 | 952 | | |
939 | 953 | | |
940 | 954 | | |
| |||
943 | 957 | | |
944 | 958 | | |
945 | 959 | | |
946 | | - | |
| 960 | + | |
947 | 961 | | |
948 | | - | |
| 962 | + | |
949 | 963 | | |
950 | | - | |
| 964 | + | |
| 965 | + | |
951 | 966 | | |
952 | 967 | | |
953 | 968 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1852 | 1852 | | |
1853 | 1853 | | |
1854 | 1854 | | |
| 1855 | + | |
1855 | 1856 | | |
1856 | 1857 | | |
1857 | 1858 | | |
1858 | 1859 | | |
1859 | 1860 | | |
| 1861 | + | |
1860 | 1862 | | |
1861 | 1863 | | |
1862 | 1864 | | |
| |||
2982 | 2984 | | |
2983 | 2985 | | |
2984 | 2986 | | |
| 2987 | + | |
| 2988 | + | |
| 2989 | + | |
| 2990 | + | |
| 2991 | + | |
| 2992 | + | |
| 2993 | + | |
| 2994 | + | |
2985 | 2995 | | |
2986 | 2996 | | |
2987 | 2997 | | |
| |||
3096 | 3106 | | |
3097 | 3107 | | |
3098 | 3108 | | |
3099 | | - | |
3100 | | - | |
| 3109 | + | |
| 3110 | + | |
3101 | 3111 | | |
3102 | | - | |
3103 | | - | |
3104 | | - | |
3105 | | - | |
3106 | | - | |
3107 | | - | |
| 3112 | + | |
| 3113 | + | |
3108 | 3114 | | |
3109 | 3115 | | |
3110 | 3116 | | |
| |||
3113 | 3119 | | |
3114 | 3120 | | |
3115 | 3121 | | |
3116 | | - | |
| 3122 | + | |
3117 | 3123 | | |
3118 | | - | |
| 3124 | + | |
3119 | 3125 | | |
3120 | | - | |
| 3126 | + | |
| 3127 | + | |
| 3128 | + | |
3121 | 3129 | | |
3122 | 3130 | | |
3123 | 3131 | | |
3124 | | - | |
| 3132 | + | |
3125 | 3133 | | |
3126 | 3134 | | |
3127 | 3135 | | |
| |||
3133 | 3141 | | |
3134 | 3142 | | |
3135 | 3143 | | |
3136 | | - | |
| 3144 | + | |
| 3145 | + | |
| 3146 | + | |
3137 | 3147 | | |
3138 | 3148 | | |
3139 | 3149 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1230 | 1230 | | |
1231 | 1231 | | |
1232 | 1232 | | |
1233 | | - | |
1234 | | - | |
1235 | | - | |
1236 | | - | |
1237 | | - | |
1238 | 1233 | | |
1239 | 1234 | | |
1240 | 1235 | | |
| |||
1247 | 1242 | | |
1248 | 1243 | | |
1249 | 1244 | | |
1250 | | - | |
1251 | | - | |
1252 | | - | |
| 1245 | + | |
1253 | 1246 | | |
1254 | 1247 | | |
1255 | 1248 | | |
| |||
1281 | 1274 | | |
1282 | 1275 | | |
1283 | 1276 | | |
1284 | | - | |
1285 | | - | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
1286 | 1282 | | |
1287 | 1283 | | |
1288 | 1284 | | |
| |||
1377 | 1373 | | |
1378 | 1374 | | |
1379 | 1375 | | |
| 1376 | + | |
| 1377 | + | |
| 1378 | + | |
| 1379 | + | |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
| 1387 | + | |
| 1388 | + | |
| 1389 | + | |
| 1390 | + | |
| 1391 | + | |
| 1392 | + | |
| 1393 | + | |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
| 1412 | + | |
| 1413 | + | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
| 1417 | + | |
| 1418 | + | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
| 1447 | + | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
1380 | 1493 | | |
1381 | 1494 | | |
1382 | | - | |
1383 | | - | |
| 1495 | + | |
| 1496 | + | |
1384 | 1497 | | |
1385 | 1498 | | |
1386 | 1499 | | |
1387 | 1500 | | |
1388 | 1501 | | |
1389 | 1502 | | |
1390 | | - | |
1391 | | - | |
1392 | | - | |
| 1503 | + | |
1393 | 1504 | | |
1394 | 1505 | | |
1395 | 1506 | | |
| |||
1404 | 1515 | | |
1405 | 1516 | | |
1406 | 1517 | | |
1407 | | - | |
| 1518 | + | |
1408 | 1519 | | |
1409 | 1520 | | |
1410 | 1521 | | |
| |||
0 commit comments