Hi all,

While doing something I should not have done, I have been able to
trigger latch.c with the error of $subject.  Adding in the elog
generated some information about the PID owning the latch and
MyProcPid has made me understand immediately why I was wrong.  Would
there be any objections to add more information in this case?

The attached patch does so.
Thanks,
--
Michael
diff --git a/src/backend/storage/ipc/latch.c b/src/backend/storage/ipc/latch.c
index f4123e7de7..ab902b265e 100644
--- a/src/backend/storage/ipc/latch.c
+++ b/src/backend/storage/ipc/latch.c
@@ -936,7 +936,8 @@ AddWaitEventToSet(WaitEventSet *set, uint32 events, pgsocket fd, Latch *latch,
 	if (latch)
 	{
 		if (latch->owner_pid != MyProcPid)
-			elog(ERROR, "cannot wait on a latch owned by another process");
+			elog(ERROR, "cannot wait on a latch owned by another process (%d,%d)",
+				 latch->owner_pid, MyProcPid);
 		if (set->latch)
 			elog(ERROR, "cannot wait on more than one latch");
 		if ((events & WL_LATCH_SET) != WL_LATCH_SET)
@@ -1046,7 +1047,8 @@ ModifyWaitEvent(WaitEventSet *set, int pos, uint32 events, Latch *latch)
 	if (events == WL_LATCH_SET)
 	{
 		if (latch && latch->owner_pid != MyProcPid)
-			elog(ERROR, "cannot wait on a latch owned by another process");
+			elog(ERROR, "cannot wait on a latch owned by another process (%d,%d)",
+				 latch->owner_pid, MyProcPid);
 		set->latch = latch;
 
 		/*

Attachment: signature.asc
Description: PGP signature

Reply via email to