On Wed, Aug 18, 2021 at 5:00 AM Robert Haas <robertmh...@gmail.com> wrote: > > Ah ha! Thank you. So I think what I was missing here is that even > though the transaction snapshot is not a well-defined concept when > !IsolationUsesXactSnapshot(), we still need TransactionXmin to be set > to a value that's earlier than any XID we might inquire about. So the > proposal to install the leader's active snapshot as the worker's > transaction snapshot is really just a way of making that happen. Now > that I understand better, that seems OK to me when > !IsolationUsesXactSnapshot(), but otherwise I think we need to > serialize and restore the actual transaction snapshot. Do you agree? >
Yes, I think I agree on that. I've updated the patch to restore the actual transaction snapshot in the IsolationUsesXactSnapshot() case, otherwise the active snapshot is installed as the transaction snapshot. I've tested the patch for the different transaction isolation levels, and the reported coredump (from assertion failure) is not occurring. (In the "serializable" case there are "could not serialize access due to read/write dependencies among transactions" errors, as Pavel has previously reported, but these occur without the patch and it appears to be an unrelated issue) Regards, Greg Nancarrow Fujitsu Australia
v9-0001-Fix-parallel-worker-failed-assertion-and-coredump.patch
Description: Binary data