Re: psycopg2 (async) socket timeout - Mailing list psycopg

From Marko Kreen
Subject Re: psycopg2 (async) socket timeout
Date
Msg-id AANLkTinw9xUnsnpX5AmzMSb=KpktXTGsaNknONJ9HPWB@mail.gmail.com
Whole thread Raw
In response to psycopg2 (async) socket timeout  (Danny Milosavljevic <danny.milo@gmail.com>)
Responses Re: psycopg2 (async) socket timeout  (Jan Urbański <wulczer@wulczer.org>)
List psycopg
On Thu, Feb 3, 2011 at 10:04 PM, Danny Milosavljevic
<danny.milo@gmail.com> wrote:
> is it possible to specify the timeout for the socket underlying a connection?
>
> Alternatively, since I'm using the async interface anyway, is it
> possible proactively cancel a query that is "stuck" since the TCP
> connection to the database is down?
>
> So the specific case is:
> - connect to the postgres database using psycopg2 while network is up
> - run some queries, get the results fine etc
> - send a query
> - the network goes down before the result to this last query has been received
> - neither a result nor an error callback gets called - as far as I can
> see (using txpostgres.ConnectionPool)
>
> What's the proper way to deal with that?

TCP keepalive.  By default the timeouts are quite high,
but they are tunable.

libpq supports keepalive tuning since 9.0, on older libpq
you can do it yourself:

  https://github.com/markokr/skytools/blob/master/python/skytools/psycopgwrapper.py#L153

--
marko

psycopg by date:

Previous
From: Daniele Varrazzo
Date:
Subject: Re: psycopg2 (async) socket timeout
Next
From: Federico Di Gregorio
Date:
Subject: Re: RELEASE: psycopg 2.4 beta 2