Re: BUG #3242: FATAL: could not unlock semaphore: error code 298

From: Marcin Waldowski <M(dot)Waldowski(at)sulechow(dot)net>
To: pgsql-bugs(at)postgresql(dot)org, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: BUG #3242: FATAL: could not unlock semaphore: error code 298
Date: 2007-04-20 10:59:51
Message-ID: 46289D27.80008@sulechow.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

Marcin Waldowski wrote:
>>
>> Doesn't the postmaster restart all other backends due to the FATAL
>> error?
>> Are you saying that you can no longer make new connections to the
>> server,
>> or is the problem coming from that the aplpication doesn't like that the
>> server kicked out all connections?
>>
>
> No, we are sure that he didn't do that. As I mentioned above one
> connection was terminated, but other ones were hung on update
> operations. In this state it was possible to create new connection
> from PGAdmin and do some select and update operations. In addition I
> can say that we use only read-commited transactions and all operations
> are based on prepared statemens which are reused.

It may mean that PGSemaphoreUnlock(PGSemaphore sema) was executed for
unintended sema "object". That's why PGSemaphoreUnlock() for unintended
sema "object" failed and PGSemaphoreUnlock() for intended sema "object"
*never* happens. That would explain why other connections were hung on
update operations.

I think it sounds quite reasonable to be one of possibilities ;)

Regards, Marcin

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Andreas 2007-04-20 12:06:48 BUG #3246: User "name" could not be created.
Previous Message Marcin Waldowski 2007-04-20 08:41:59 Re: BUG #3242: FATAL: could not unlock semaphore: error code 298

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2007-04-20 12:56:09 Re: [HACKERS] Full page writes improvement, code update
Previous Message Koichi Suzuki 2007-04-20 09:19:40 Re: [HACKERS] Full page writes improvement, code update