Re: Curious buildfarm failures

Heikki Linnakangas <hlinnakangas@vmware.com>

From: Heikki Linnakangas <hlinnakangas@vmware.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgreSQL.org
Date: 2013-01-14T22:37:44Z
Lists: pgsql-hackers

Attachments

On 15.01.2013 00:14, Heikki Linnakangas wrote:
> On 14.01.2013 23:35, Tom Lane wrote:
>> Since commit 2065dd2834e832eb820f1fbcd16746d6af1f6037, there have been
>> a few buildfarm failures along the lines of
>>
>> -- Commit table drop
>> COMMIT PREPARED 'regress-two';
>> ! PANIC: failed to re-find shared proclock object
>> ! PANIC: failed to re-find shared proclock object
>> ! connection to server was lost
>>
>> Evidently I bollixed something, but what? I've been unable to reproduce
>> this locally so far. Anybody see what's wrong?
>
> I was able to reproduce this by setting max_locks_per_transaction and
> max_connections to the minimum. My assumption is that there's something
> wrong in the way hash_update_hash_key() handles collisions.

The problem seems to be when the the old and the key hash to the same 
bucket. In that case, hash_update_hash_key() tries to link the entry to 
itself. The attached patch fixes it for me.

- Heikki

Commits

  1. Prevent very-low-probability PANIC during PREPARE TRANSACTION.