Sorry for delayed reply.

Sure, I don't mind. Happy to take that up

On Tue, Feb 19, 2019 at 11:48 PM Mike Bayer <[email protected]>
wrote:

> the issue is that the error condition which pool_pre_ping tests is not
> implemented within the Sybase dialect as a so-called "disconnect"
> error.    This is part of the larger issue that the Sybase dialect is
> not supported right now.   if you are interested in doing some
> maintenance I can set you up with that but ideally the Sybase dialect
> would be externally maintained as its own project.
>
>
> On Tue, Feb 19, 2019 at 12:36 PM Shakim Mohammed
> <[email protected]> wrote:
> >
> > Hello,
> >
> > My use is case to make sure that the sqlalchemy process does not raise
> exception(or 500) after the backend database reboots.
> >
> > I tried using pool_pre_ping = True config to get things done but I am
> getting a different error after the reboot happens
> >
> > My configuration are:
> > SqlAlchemy = 1.2.17
> > FlaskSqlAlchemy = 2.1
> > Flask = 0.9
> > Bakend Database = Sybase
> > python-sybase = 0.39
> >
> > Most of the sqlalchemy configuration other then pool_pre_ping=True is
> set to default.
> >
> > Here are the logs. Please let me know if there is anything I am doing it
> incorrectly
> >
> > Error: myapp.flask_sqlalchemy_model_init: Exception on /resources/search
> [GET]
> > Traceback (most recent call last):
> >     File "/sw/external/flask-py27-0.9/lib/python/flask/app.py", line
> 1687, in wsgi_app
> >         response = self.full_dispatch_request()
> >     File "/sw/external/flask-py27-0.9/lib/python/flask/app.py", line
> 1360, in full_dispatch_request
> >         rv = self.handle_user_exception(e)
> >     File "/sw/external/flask-py27-0.9/lib/python/flask/app.py", line
> 1358, in full_dispatch_request
> >         rv = self.dispatch_request()
> >     File "/sw/external/flask-py27-0.9/lib/python/flask/app.py", line
> 1344, in dispatch_request
> >         return self.view_functions[rule.endpoint](**req.view_args)
> >     File "/home/user/myapp/resource.py", line 44 in search_resources
> >         result = db.engine.execute(sql).fetchall()
> >     File
> "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/engine/base.py", line
> 2143, in execute
> >         connection = self.contextual_connect(close_with_result=True)
> >     File
> "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/engine/base.py", line
> 2192, in contextual_connect
> >         self._wrap_pool_connect(self.pool.connect, None),
> >     File
> "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/engine/base.py", line
> 2232, in _wrap_pool_connect
> >         e, dialect, self
> >     File
> "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/engine/base.py", line
> 1528, in _handle_dbapi_exception_noconnection
> >         util.raise_from_cause(sqlalchemy_exception, exc_info)
> >     File
> "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/util/compat.py", line
> 296, in raise_from_clause
> >         reraise(type(exception), exception, tb=exc_tb, cause=cause)
> >     File
> "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/engine/base.py", line
> 2228, in _wrap_pool_connect
> >         return fn()
> >     File "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/pool.py",
> line 425, in connect
> >         return _ConnectionFairy._checkout(self)
> >     File "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/pool.py",
> line 853, in _checkout
> >         result = pool._dialect.do_ping(fairy.connection)
> >     File
> "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/engine/default.py",
> line 505, in do_ping
> >         cursor.close()
> >     File "/sw/external/python-sybase-0.39/lib/python/Sybase.py", line
> 431, in close
> >         self._reset()
> >     File "/sw/external/python-sybase-0.39/lib/python/Sybase.py", line
> 327, in _reset
> >         self._close_ct_cursor
> >     File "/sw/external/python-sybase-0.39/lib/python/Sybase.py", line
> 438, in _close_ct_cursor
> >         status = self._cmd.ct_cursor(CS_CURSOR_CLOSE)
> >     File "/sw/external/python-sybase-0.39/lib/python/Sybase.py", line
> 250, in _clientmsg_cb
> >         raise DatbaseError(msg)
> >     DatabaseError: (Sybase.DatabaseError) Layer: 1, Origin: 1
> >     ct_cursor(): user api layer: external error: The connection has been
> marked dead.
> >
> >     Exception Sybase.DatabaseError: DatabaseError('Layer: 1, Origin:
> 1\\nct_cmd_drop(): user api layer: external error: The connection has been
> marked dead.',) in <bound method Cursor.__del__ of <Sybase.Cursor intance
> at 0x7f9ee88477e8>> ignored
> >     ERROR:sqlalchemy.pool.QueuePool:Exception during reset or similar
> >     Traceback (most recent call last):
> >     File "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/pool.py",
> line 742, in _finalize_fairy
> >         fairy._reset(pool)
> >     File "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/pool.py",
> line 929, in _reset
> >         pool._dialect.do_rollback(self)
> >     File
> "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/engine/default.py",
> line 486, in do_rollback
> >         dbapi_connection.rollback(self)
> >     File "/sw/external/python-sybase-0.39/lib/python/Sybase.py", line
> 1010, in rollback
> >         self.execute('rollback transaction')
> >     File "/sw/external/python-sybase-0.39/lib/python/Sybase.py", line
> 1033, in execute
> >         cursor = self.cursor()
> >     File "/sw/external/python-sybase-0.39/lib/python/Sybase.py", line
> 1019, in cursor
> >         return Cursor(self, inputmap, outputmap)
> >     File "/sw/external/python-sybase-0.39/lib/python/Sybase.py", line
> 321, in __init_-
> >         status, self._cmd = self._owner._conn.ct_cmd_alloc()
> >     File "/sw/external/python-sybase-0.39/lib/python/Sybase.py", line
> 250, in _clientmsg_cb
> >         raise DatabaseError(msg)
> >     DatabaseError: Layer: 1, Origin: 1
> >     ct_cmd_alloc(): user api layer: external error: The connection has
> been marked dead
> >
> >     ERROR:sqlalchemy.pool.QueuePool:Exception closing connection
> <Sybase.Connection instance at 0x7f9ee87fcb90>
> >     Traceback (most recent call last):
> >         File
> "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/pool.py", line 333,
> in _close_connection
> >             self._dialect.do_close(connection)
> >         File
> "/sw/external/sqlalchemy-1.2.17/lib/python/sqlalchemy/engine/default.py",
> line 492, in do_close
> >             dbapi_connection.close()
> >         File "/sw/external/python-sybase-0.39/lib/python/Sybase.py",
> line 955, in close
> >             status = conn.ct_cancel(CS_CANCEL_ALL)
> >         File "/sw/external/python-sybase-0.39/lib/python/Sybase.py",
> line 250, in _clientmsg_cb
> >             raise DatabaseError(msg)
> >     DatabaseError: Layer: 5, Origin: 3
> >     ct_cancel(): network packet layer: internal net library error:
> Net-Library operation terminated due to disconnect
> >
> >     mod_wsgi (pid=18201): Exception occured processing WSGI script
> >     Traceback (most recent call last):
> >         File
> "/sw/external/wekzeug-py27-0.8.3/lib/python/werkzeug/wsgi.py", line 513, in
> next
> >             return self._next()
> >         File
> "/sw/external/wekzeug-py27-0.8.3/lib/python/werkzeug/wrappers.py", line
> 829, in iter_encoded
> >             for item in self.response:
> >         File
> "/sw/external/wekzeug-py27-0.8.3/lib/python/werkzeug/wsgi.py", line 513, in
> next
> >             return self._next()
> >         File
> "/sw/external/wekzeug-py27-0.8.3/lib/python/werkzeug/wrappers.py", line
> 829, in iter_encoded
> >             for item in self.response:
> >         File "/sw/external/python-sybase-0.39/lib/python/Sybase.py",
> line 250, in _clientmsg_cb
> >             raise DatabaseError(msg)
> >     DatabaseError: Layer: 1, Origin: 1
> >     ct_cmd_drop(): user api layer: external error: The connection has
> been marked dead
> >
> > --
> > 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 post to this group, send email to [email protected].
> > Visit this group at https://groups.google.com/group/sqlalchemy.
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> 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 post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to