diff options
Diffstat (limited to 'src/backend/access/transam/twophase.c')
-rw-r--r-- | src/backend/access/transam/twophase.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index fc18b778324..70d22577cee 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -873,8 +873,15 @@ PGPROC * TwoPhaseGetDummyProc(TransactionId xid, bool lock_held) { GlobalTransaction gxact = TwoPhaseGetGXact(xid, lock_held); + PGPROC *dummy = &ProcGlobal->allProcs[gxact->pgprocno]; - return &ProcGlobal->allProcs[gxact->pgprocno]; + /* + * Initialize atomic variable in dummy proc so that GetLockStatusData() + * can read it later. + */ + pg_atomic_init_u64(&dummy->waitStart, 0); + + return dummy; } /************************************************************************/ |