Re: [BUGS] BUG #3242: FATAL: could not unlock semaphore: error code 298 - Mailing list pgsql-hackers

From Marcin Waldowski
Subject Re: [BUGS] BUG #3242: FATAL: could not unlock semaphore: error code 298
Date
Msg-id 46287CD7.40706@sulechow.net
Whole thread Raw
In response to Re: [BUGS] BUG #3242: FATAL: could not unlock semaphore: error code 298  (Magnus Hagander <magnus@hagander.net>)
Responses Re: [BUGS] BUG #3242: FATAL: could not unlock semaphore: error code 298
List pgsql-hackers
Magnus Hagander wrote:
>> Hmm, PGSemaphoreUnlock() actually ignore this error, only log that it 
>> happens.
>>     
>
> No. It does ereport(FATAL) which terminates the backend.
>
>   

Oh, now I see, sorry :) Indeed on this one connection we receive 
exception "FATAL: could not unlock semaphore", after that rollback 
failed because of IO error during write to connection and that was 
caused by "Connection reset by peer: socket write error".

>> As I mentioned previously after it happens others connections 
>> were hung on update operations. What is strange we cannot reproduce this 
>> problem on Linux. But we can do this on Windows. What another 
>> information should we provide?
>>     
>
> 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.

> If you can produce a self-contained test-case, that would certainly make
> debugging a lot easier. So if it's possible - but I realise that might not
> be easy for a problem like this :-)
>   

Our test case is our application, but unfortunately I cannot send it to 
you. I will think about test case, but I need to find a time for writing 
it :( I can reproduce error and provide all information you need from 
PostgreSQL. Please instruct me what to do :)

Regards, Marcin




pgsql-hackers by date:

Previous
From: Zoltan Boszormenyi
Date:
Subject: Re: parser dilemma
Next
From: Gregory Stark
Date:
Subject: Re: Improving deadlock error messages