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.
