summaryrefslogtreecommitdiff
path: root/src/backend/access/gist/README
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2018-01-05 12:17:10 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2018-01-05 12:17:10 -0300
commit9a5e4a6e08faf68f9fbc1e15eeade46fd7b1d7e0 (patch)
tree2078ea9be0447c7d0ee041f7b30307ba9de73d7f /src/backend/access/gist/README
parentad592f4a6eed64358bf1ec8733c4f0be2a3c85dd (diff)
Fix failure to delete spill files of aborted transactions
Logical decoding's reorderbuffer.c may spill transaction files to disk when transactions are large. These are supposed to be removed when they become "too old" by xid; but file removal requires the boundary LSNs of the transaction to be known. The final_lsn is only set when we see the commit or abort record for the transaction, but nothing sets the value for transactions that crash, so the removal code misbehaves -- in assertion-enabled builds, it crashes by a failed assertion. To fix, modify the final_lsn of transactions that don't have a value set, to the LSN of the very latest change in the transaction. This causes the spilled files to be removed appropriately. Author: Atsushi Torikoshi Reviewed-by: Kyotaro HORIGUCHI, Craig Ringer, Masahiko Sawada Discussion: https://postgr.es/m/54e4e488-186b-a056-6628-50628e4e4ebc@lab.ntt.co.jp
Diffstat (limited to 'src/backend/access/gist/README')
0 files changed, 0 insertions, 0 deletions