Commit 15378c1
committed
Remove AELs from subxids correctly on standby
Issues relate only to subtransactions that hold AccessExclusiveLocks
when replayed on standby.
Prior to PG10, aborting subtransactions that held an
AccessExclusiveLock failed to release the lock until top level commit or
abort. 49bff53 fixed that.
However, 49bff53 also introduced a similar bug where subtransaction
commit would fail to release an AccessExclusiveLock, leaving the lock to
be removed sometimes early and sometimes late. This commit fixes
that bug also. Backpatch to PG10 needed.
Tested by observation. Note need for multi-node isolationtester to improve
test coverage for this and other HS cases.
Reported-by: Simon Riggs
Author: Simon Riggs1 parent 1cfdb1c commit 15378c1
File tree
4 files changed
+7
-30
lines changed- src
- backend
- access/transam
- storage/ipc
- include/storage
4 files changed
+7
-30
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5602 | 5602 | | |
5603 | 5603 | | |
5604 | 5604 | | |
5605 | | - | |
5606 | | - | |
5607 | | - | |
| 5605 | + | |
5608 | 5606 | | |
5609 | 5607 | | |
5610 | | - | |
| 5608 | + | |
5611 | 5609 | | |
5612 | 5610 | | |
5613 | 5611 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
684 | 684 | | |
685 | 685 | | |
686 | 686 | | |
687 | | - | |
688 | | - | |
689 | | - | |
690 | 687 | | |
691 | | - | |
| 688 | + | |
692 | 689 | | |
693 | 690 | | |
694 | 691 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
722 | 722 | | |
723 | 723 | | |
724 | 724 | | |
725 | | - | |
| 725 | + | |
726 | 726 | | |
727 | 727 | | |
728 | 728 | | |
| |||
741 | 741 | | |
742 | 742 | | |
743 | 743 | | |
744 | | - | |
745 | | - | |
746 | | - | |
747 | | - | |
748 | | - | |
749 | | - | |
750 | | - | |
751 | | - | |
752 | | - | |
753 | | - | |
754 | | - | |
755 | | - | |
756 | | - | |
757 | | - | |
758 | | - | |
759 | | - | |
760 | | - | |
761 | | - | |
762 | | - | |
763 | | - | |
| 744 | + | |
| 745 | + | |
764 | 746 | | |
765 | 747 | | |
766 | 748 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
| 53 | + | |
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| |||
0 commit comments