On Wed, Aug 9, 2023 at 2:01 AM Christoph Berg <m...@debian.org> wrote:
> Putting that patch on top of v8 made it pass 294 times before exiting
> like this:
>
> [08:52:34.134](0.032s) ok 1 - buffer pin conflict: cursor with conflicting 
> pin established
> Waiting for replication conn standby's replay_lsn to pass 0/3430000 on primary
> done
> timed out waiting for match: (?^:User was holding shared buffer pin for too 
> long) at t/031_recovery_conflict.pl line 318.

Can you reproduce that with logging like this added on top?

diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c
index 5b663a2997..72f5274c95 100644
--- a/src/backend/storage/lmgr/proc.c
+++ b/src/backend/storage/lmgr/proc.c
@@ -629,6 +629,7 @@ SetStartupBufferPinWaitBufId(int bufid)
        /* use volatile pointer to prevent code rearrangement */
        volatile PROC_HDR *procglobal = ProcGlobal;

+       elog(LOG, "XXX SetStartupBufferPinWaitBufId(%d)", bufid);
        procglobal->startupBufferPinWaitBufId = bufid;
 }

@@ -640,8 +641,11 @@ GetStartupBufferPinWaitBufId(void)
 {
        /* use volatile pointer to prevent code rearrangement */
        volatile PROC_HDR *procglobal = ProcGlobal;
+       int bufid;

-       return procglobal->startupBufferPinWaitBufId;
+       bufid = procglobal->startupBufferPinWaitBufId;
+       elog(LOG, "XXX GetStartupBufferPinWaitBufId() -> %d", bufid);
+       return bufid;
 }


Reply via email to