Re: BUG #5465: dblink TCP connection hangs blocking translation from being terminated - Mailing list pgsql-bugs

From Joseph Conway
Subject Re: BUG #5465: dblink TCP connection hangs blocking translation from being terminated
Date
Msg-id 4BF430E5.1040503@joeconway.com
Whole thread Raw
In response to Re: BUG #5465: dblink TCP connection hangs blocking translation from being terminated  (Magnus Hagander <magnus@hagander.net>)
List pgsql-bugs
Magnus Hagander wrote:
> On Wed, May 19, 2010 at 5:10 AM, Valentine Gogichashvili
> <valgog@gmail.com> wrote:
>> The following bug has been logged online:
>>
>> Bug reference:      5465
>> Logged by:          Valentine Gogichashvili
>> Email address:      valgog@gmail.com
>> PostgreSQL version: 8.2.1
>> Operating system:   Red Hat 3.4.6-3 (kernel 2.6.9-42.0.3.ELsmp)
>> Description:        dblink TCP connection hangs blocking translation from
>> being terminated
>> Details:
>>
>> Hi all,
>>
>> we have an issue on our productive server. A stored procedure, that uses
>> dblink to get some data from the remote database hangs not responding to
>> kill signal and holds several locks on some tables as well as an advisory
>> lock. So I have this transaction to be completed in order to have a
>> possibility to operate the database normally.
>
> I believe this is a known issue in dblink, where it's not possible to
> cancel it when it's waiting in the TCP layer in the kernel.
> Unfortunately, there is no fix ATM - there was some work towards it
> for 9.0 at one point, but I think this is actually the first real
> bug-report on the issue...

I thought the known issue was only on Windows though...
Note that this is not dblink specific but rather libpq.

>> How would it be possible to shutdown the DB in case this session process is
>> not responding to normal kill signals? Will it hinder the database from
>> shutting down normally? My previous experience with issuing immediate stops
>> or killing with -9 had been quite catastrophic and I could not start the DB
>> afterwards. What would you suggest in this case?
>
> kill -9 on a client will make the postmaster restart the whole
> process, so yes, it's a very heavy operation.

Can you grab the process with gdb and call elog() manually?

Joe

pgsql-bugs by date:

Previous
From: Michael Meskes
Date:
Subject: Re: BUG #5464: ecpg on 64bit system converts "long long" to "long"
Next
From: Alvaro Herrera
Date:
Subject: Re: BUG #5466: Asia/Novosibirsk timezone problem