Re: BUG #5465: dblink TCP connection hangs blocking translation from being terminated

From: Joseph Conway <mail(at)joeconway(dot)com>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: Valentine Gogichashvili <valgog(at)gmail(dot)com>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #5465: dblink TCP connection hangs blocking translation from being terminated
Date: 2010-05-19 18:41:41
Message-ID: 4BF430E5.1040503@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Magnus Hagander wrote:
> On Wed, May 19, 2010 at 5:10 AM, Valentine Gogichashvili
> <valgog(at)gmail(dot)com> wrote:
>> The following bug has been logged online:
>>
>> Bug reference: 5465
>> Logged by: Valentine Gogichashvili
>> Email address: valgog(at)gmail(dot)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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alvaro Herrera 2010-05-19 19:00:35 Re: BUG #5466: Asia/Novosibirsk timezone problem
Previous Message Michael Meskes 2010-05-19 18:40:56 Re: BUG #5464: ecpg on 64bit system converts "long long" to "long"