=== Applying patches on top of PostgreSQL commit ID dca6a9e320e0272f0ea8d7e076cda04b06050866 === /etc/rc.d/jail: WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider migrating to /etc/jail.conf. Tue Sep 29 17:15:29 UTC 2026 On branch cf/7341 nothing to commit, working tree clean === using 'git am' to apply patch ./v3-0001-Reset-waitStart-when-a-lock-wait-ends.patch === Applying: Reset waitStart when a lock wait ends Using index info to reconstruct a base tree... M src/backend/storage/lmgr/lock.c M src/backend/storage/lmgr/proc.c Falling back to patching base and 3-way merge... Auto-merging src/backend/storage/lmgr/proc.c CONFLICT (content): Merge conflict in src/backend/storage/lmgr/proc.c error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 Reset waitStart when a lock wait ends When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". === using patch(1) to apply patch ./v3-0001-Reset-waitStart-when-a-lock-wait-ends.patch === patching file src/backend/storage/lmgr/lock.c Hunk #1 FAILED at 2105. 1 out of 1 hunk FAILED -- saving rejects to file src/backend/storage/lmgr/lock.c.rej patching file src/backend/storage/lmgr/proc.c Hunk #1 succeeded at 874 with fuzz 2 (offset 3 lines). Hunk #2 succeeded at 1750 with fuzz 2 (offset 3 lines). Unstaged changes after reset: M src/backend/storage/lmgr/proc.c Removing src/backend/storage/lmgr/lock.c.rej === using 'git apply' to apply patch ./v3-0001-Reset-waitStart-when-a-lock-wait-ends.patch === Applied patch to 'src/backend/storage/lmgr/lock.c' cleanly. Applied patch to 'src/backend/storage/lmgr/proc.c' with conflicts. U src/backend/storage/lmgr/proc.c diff --cc src/backend/storage/lmgr/proc.c index a168bac3bc9,f93203916c1..00000000000 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@@ -871,7 -871,7 +871,11 @@@ LockErrorCleanup(void GrantAwaitedLock(); } ++<<<<<<< ours + /* An error can bypass ProcSleep()'s reset, so clear waitStart here */ ++======= + /* Clear waitStart, for the same reason as at the end of ProcSleep() */ ++>>>>>>> theirs pg_atomic_write_u64(&MyProc->waitStart, 0); ResetAwaitedLock(); @@@ -1748,8 -1748,9 +1752,14 @@@ ProcSleep(LOCALLOCK *locallock } while (myWaitStatus == PROC_WAIT_STATUS_WAITING); /* ++<<<<<<< ours + * Clear waitStart after the wait, as we may have set it after + * ProcWakeup() cleared it. ++======= + * The wait is over, so clear waitStart. ProcWakeup() clears it too, but + * it can run before we set waitStart, and then our value would be left + * behind. ++>>>>>>> theirs */ pg_atomic_write_u64(&MyProc->waitStart, 0);