Commit 38e9f90
committed
Fix lazy_scan_heap so that it won't mark pages all-frozen too soon.
Commit a892234 added a new bit per
page to the visibility map fork indicating whether the page is
all-frozen, but incorrectly assumed that if lazy_scan_heap chose to
freeze a tuple then that tuple would not need to later be frozen
again. This turns out to be false, because xmin and xmax (and
conceivably xvac, if dealing with tuples from very old releases) could
be frozen at separate times.
Thanks to Andres Freund for help in uncovering and tracking down this
issue.1 parent c7a25c2 commit 38e9f90
File tree
3 files changed
+40
-16
lines changed- src
- backend
- access/heap
- commands
- include/access
3 files changed
+40
-16
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6377 | 6377 | | |
6378 | 6378 | | |
6379 | 6379 | | |
6380 | | - | |
| 6380 | + | |
| 6381 | + | |
| 6382 | + | |
6381 | 6383 | | |
6382 | 6384 | | |
6383 | 6385 | | |
| |||
6402 | 6404 | | |
6403 | 6405 | | |
6404 | 6406 | | |
6405 | | - | |
6406 | | - | |
| 6407 | + | |
6407 | 6408 | | |
6408 | 6409 | | |
6409 | 6410 | | |
6410 | 6411 | | |
| 6412 | + | |
6411 | 6413 | | |
6412 | 6414 | | |
6413 | 6415 | | |
| |||
6416 | 6418 | | |
6417 | 6419 | | |
6418 | 6420 | | |
6419 | | - | |
6420 | | - | |
| 6421 | + | |
6421 | 6422 | | |
6422 | | - | |
6423 | | - | |
| 6423 | + | |
| 6424 | + | |
| 6425 | + | |
| 6426 | + | |
| 6427 | + | |
| 6428 | + | |
| 6429 | + | |
6424 | 6430 | | |
6425 | 6431 | | |
6426 | 6432 | | |
| |||
6458 | 6464 | | |
6459 | 6465 | | |
6460 | 6466 | | |
| 6467 | + | |
6461 | 6468 | | |
6462 | 6469 | | |
6463 | 6470 | | |
| |||
6479 | 6486 | | |
6480 | 6487 | | |
6481 | 6488 | | |
| 6489 | + | |
6482 | 6490 | | |
6483 | 6491 | | |
6484 | 6492 | | |
6485 | 6493 | | |
6486 | 6494 | | |
6487 | 6495 | | |
6488 | | - | |
6489 | | - | |
| 6496 | + | |
6490 | 6497 | | |
6491 | | - | |
| 6498 | + | |
| 6499 | + | |
| 6500 | + | |
| 6501 | + | |
6492 | 6502 | | |
6493 | 6503 | | |
6494 | 6504 | | |
| |||
6514 | 6524 | | |
6515 | 6525 | | |
6516 | 6526 | | |
6517 | | - | |
6518 | | - | |
| 6527 | + | |
| 6528 | + | |
| 6529 | + | |
| 6530 | + | |
| 6531 | + | |
| 6532 | + | |
| 6533 | + | |
| 6534 | + | |
| 6535 | + | |
6519 | 6536 | | |
6520 | 6537 | | |
6521 | 6538 | | |
| |||
6537 | 6554 | | |
6538 | 6555 | | |
6539 | 6556 | | |
| 6557 | + | |
6540 | 6558 | | |
6541 | 6559 | | |
6542 | 6560 | | |
| |||
6587 | 6605 | | |
6588 | 6606 | | |
6589 | 6607 | | |
| 6608 | + | |
6590 | 6609 | | |
6591 | 6610 | | |
6592 | | - | |
| 6611 | + | |
6593 | 6612 | | |
6594 | 6613 | | |
6595 | 6614 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1054 | 1054 | | |
1055 | 1055 | | |
1056 | 1056 | | |
| 1057 | + | |
| 1058 | + | |
1057 | 1059 | | |
1058 | 1060 | | |
1059 | 1061 | | |
| |||
1062 | 1064 | | |
1063 | 1065 | | |
1064 | 1066 | | |
1065 | | - | |
| 1067 | + | |
| 1068 | + | |
1066 | 1069 | | |
1067 | | - | |
| 1070 | + | |
| 1071 | + | |
1068 | 1072 | | |
1069 | 1073 | | |
1070 | 1074 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
386 | 386 | | |
387 | 387 | | |
388 | 388 | | |
389 | | - | |
| 389 | + | |
| 390 | + | |
390 | 391 | | |
391 | 392 | | |
392 | 393 | | |
| |||
0 commit comments