Heikki Linnakangas <[EMAIL PROTECTED]> writes:
> Locking the same lock twice is usually handled correctly, I don't 
> understand why it fails in this case. I'm thinking that the locallock 
> structs somehow get out of sync with the lock structs in shared memory. 
> The twophase-records are created from the locallock structs alone, so if 
> there's extra entries in the locallocks table for some reason, we'd get 
> the symptoms we have.

Hmm.  I was just noticing this comment in PostPrepare_Locks:

     * We do this separately because we may have multiple locallock entries
     * pointing to the same proclock, and we daren't end up with any dangling
     * pointers.

I'm not clear at the moment on why such a state would exist, but could
it be related?

> Unless you have a better idea, I'd like to add some more debug-prints to 
> AtPrepare_Locks to see what gets written to the state file and why.

Seems like a reasonable thing to pursue.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to