Thanks.  I don't believe this is a Red Hat issue as much as a configuration
issue.  This is because I can replicate the issue using PSQL and using the
connect_timeout argument in PSQL, I can fix it.  With the complexity of
using flask-sqlalchemy which uses sqlalchemy to pass arguments to psycopg2
to libpq, it is difficult to see where the issue actually is.  Based on the
links you provided, I am passing the connect_timeout parameter correctly.
I am not sure what to do now.  I am guessing I will need to somehow figure
out if the parameter is being passed.  I think I will play with
getting  connection.get_dsn_parameters()
function to display the parameters.

Karim

On Wed, 26 Feb 2020 at 07:30, Mike Bayer <[email protected]> wrote:

> This would be a psycopg2 level setting which are documented at
> https://www.psycopg.org/docs/module.html#psycopg2.connect and the
> available values are ultimately at
> https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS
> .    On the SQLAlchemy side you pass these to create_engine using
> connect_args:
> https://docs.sqlalchemy.org/en/13/core/engines.html?highlight=connect_args#custom-dbapi-args
>
>
>
> On Wed, Feb 26, 2020, at 12:11 AM, Karim Gillani wrote:
>
> We are using openshift which uses HAProxy.  What I am looking for is why
> the connect_timeout may not being applied so that we can retry the call
> after re-connect to the other database pod.
>
> It is taking *up to two minutes* before I get
> the psycopg2.OperationalError.  It's very strange.  The code will
> automatically retry and work after this error shows up.  I am guessing but
> I don't think my setup is passing the connect_timeout to libpq.
>
> Thanks
>
> On Tuesday, 25 February 2020 10:37:19 UTC-8, Mike Bayer wrote:
>
> "could not connect" means your server is unreachable from a network
> standpoint.  You want to make sure the server is running and that it is
> routable over the network you are trying to connect from.
>
> in an HA scenario, depending on what software is in use and how it does
> switchover, there can be long network lags, such as if it is moving a VIP
> from one machine to another.  You'd want to be using a proxy server such as
> HAProxy or PGBouncer rather than relying upon changing network routing.
>
>
>
> On Tue, Feb 25, 2020, at 12:07 PM, Karim Gillani wrote:
>
> Please note I am using a Pool.  And some other connections seem to recover
> fine.  After two minutes I get this message and things start working again:
>
> ==> AE K:11oh392; T:1; E:(psycopg2.OperationalError) could not connect to
> server: Connection timed out> Is the server running on host
> "patroni-mastertheq" (172.50.46.180) and accepting> TCP/IP connections on
> port 5432?>>(Background on this error at: http://sqlalche.me/e/e3q8 )
> Thanks
> Karim
>
> On Tuesday, 25 February 2020 08:49:19 UTC-8, Karim Gillani wrote:
>
> I am having an issue where when my HA postgres database drops and is
> automatically moved to a backup database, the timeout doesn't seem to be
> working.
>
> My config.py shows the following:
>
> SQLALCHEMY_DATABASE_URI = '{engine}://{user}:{password}@
> {host}:{port}/{name}'.format(
>
> engine=DB_ENGINE,
>
> user=DB_USER,
>
> password=DB_PASSWORD,
>
> host=DB_HOST,
>
> port=DB_PORT,
>
> name=DB_NAME,
>
> )
> SQLALCHEMY_ENGINE_OPTIONS
> = { 'pool_size' : pool_size, 'max_overflow' : max_overflow,
> 'pool_pre_ping' : True, 'pool_timeout': DB_POOL_TIMEOUT, 'pool_recycle':
> 3600, 'connect_args': { 'connect_timeout': 5, 'options' : '-c
> statement_timeout=5000' } }
>
> Is there something I set wrong?  My timeout seems to be about 2 minutes
> instead of 5 secs.
>
> Any help would be appreciated,
>
> Thanks
> Karim
>
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> description.
> ---
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sqlalchemy/ab3e5681-d9be-468f-8160-97bddcca57fb%40googlegroups.com
> <https://groups.google.com/d/msgid/sqlalchemy/ab3e5681-d9be-468f-8160-97bddcca57fb%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> description.
> ---
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sqlalchemy/06c8e91e-4f36-4192-90d0-acbe840478ef%40googlegroups.com
> <https://groups.google.com/d/msgid/sqlalchemy/06c8e91e-4f36-4192-90d0-acbe840478ef%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> description.
> ---
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sqlalchemy/82280db0-b63e-4e31-9657-66eb8bcd79b7%40www.fastmail.com
> <https://groups.google.com/d/msgid/sqlalchemy/82280db0-b63e-4e31-9657-66eb8bcd79b7%40www.fastmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/CAOpL_VFw3U7vZhiLnQ8gB7-zUe%3Dc14QU019w9bQ25B4jPs6MvA%40mail.gmail.com.

Reply via email to