Tom Lane wrote:
> I wrote:
>
>>Can anyone spot the problem? If not I fear we'll have to revert this.
>
>
> After a bit of reading MIPS documentation, I found out that the proposed
> patch is exactly backward: it returns 1 if it gets the lock and 0 if the
> lock is already held :-(
>
> Because callers will loop on a nonzero return, the second iteration
> falls through, which is why the thing isn't an infinite loop. Only
> problem is when we hit the lock at an instant when somebody else
> already has it.
>
> Given the short duration of our spinlock holds, it was probably quite
> a coincidence that Stefan's machine got a failure almost immediately.
> We might have had the problem lurking for awhile.
>
> I'll try to commit something that really works in a little bit.
well not sure if that counts as "really works" :-)
http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=lionfish&dt=2005-08-27%2006:33:05
Stefan