Hi, On Thu, Sep 24, 2026 at 03:49:35PM +0800, Xuneng Zhou wrote: > Hi hackers, > > I don't see a clear solution to this potential issue, because the interface > is a function, which means that the held snapshots cannot be popped cleanly > since they belong to the surrounding executor.
Thanks for the report and reproducers! Thinking out loud, I wonder if we could add a transient PGPROC state while a backend depends on recovery replay. After deadlock_timeout, ResolveRecoveryConflictWithVirtualXIDs() could check whether a VXID in its waitlist has that state set and, if so, use the existing recovery conflict cancellation path. Does that make sense to you and others? If so, I can have a look at preparing a patch. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
