Getting the below error in MariaDb and its causing timeout issue : Debugged it with removing skip-name-resolve, granting privileges to user@localhost, and in pyton create_engine used pool_pre_ping = True and pool_recycle=3600 but nothing seems to solve the issue. MariaDb version is 10.4.20 and Python is 3.9.Its not a multithreaded application as well. Any pointers on solving debugging this issue would be helpful.
This is the connection getting created:
db_connection_str = 'mysql+pymysql://root:root@localhost:3306/collection'
sql_engine = create_engine(db_connection_str,pool_pre_ping=True pool_recycle=3600)
def get_engine():
engine = create_engine(db_connection_str, pool_pre_ping=True,pool_recycle=3600)
return engine
The engine is used to get the connection as 'sql_engine.connect()'
or used with 'Session = sessionmaker(bind=sql_engine) session = Session()'
Error :
”’
(Background on this error at: https://sqlalche.me/e/14/2j85)
Traceback (most recent call last):
File "D:Pythonlibsite-packagessqlalchemyenginebase.py", line 3212, in _wrap_pool_connect
return fn()
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 307, in connect
return _ConnectionFairy._checkout(self)
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 767, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 425, in checkout
rec = pool._do_get()
File "D:Pythonlibsite-packagessqlalchemypoolimpl.py", line 146, in _do_get
self._dec_overflow()
File "D:Pythonlibsite-packagessqlalchemyutillanghelpers.py", line 72, in __exit__
with_traceback=exc_tb,
File "D:Pythonlibsite-packagessqlalchemyutilcompat.py", line 207, in raise_
raise exception
File "D:Pythonlibsite-packagessqlalchemypoolimpl.py", line 143, in _do_get
return self._create_connection()
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 253, in _create_connection
return _ConnectionRecord(self)
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 368, in __init__
self.__connect()
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 611, in __connect
pool.logger.debug("Error on connect(): %s", e)
File "D:Pythonlibsite-packagessqlalchemyutillanghelpers.py", line 72, in __exit__
with_traceback=exc_tb,
File "D:Pythonlibsite-packagessqlalchemyutilcompat.py", line 207, in raise_
raise exception
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 605, in __connect
connection = pool._invoke_creator(self)
File "D:Pythonlibsite-packagessqlalchemyenginecreate.py", line 578, in connect
return dialect.connect(*cargs, **cparams)
File "D:Pythonlibsite-packagessqlalchemyenginedefault.py", line 584, in connect
return self.dbapi.connect(*cargs, **cparams)
File "D:Pythonlibsite-packagespymysqlconnections.py", line 353, in __init__
self.connect()
File "D:Pythonlibsite-packagespymysqlconnections.py", line 632, in connect
self._get_server_information()
File "D:Pythonlibsite-packagespymysqlconnections.py", line 1055, in _get_server_information
packet = self._read_packet()
File "D:Pythonlibsite-packagespymysqlconnections.py", line 707, in _read_packet
% (packet_number, self._next_seq_id)
pymysql.err.InternalError: Packet sequence number wrong - got 1 expected 0
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:/xampp/htdocs/prod/collectionaccounting/bot_run.py", line 142, in <module>
main()
File "C:/xampp/htdocs/prod/collectionaccounting/bot_run.py", line 138, in main
BotRunLogger.log(level='success', msg='Bot Run completed successfully')
File "C:xampphtdocsprodcollectionaccountingAppLoggerBotRunLogger.py", line 12, in log
settings = config.get_settings()
File "C:xampphtdocsprodcollectionaccountingApiconfig.py", line 112, in get_settings
result = session.query(Settings).all()
File "D:Pythonlibsite-packagessqlalchemyormquery.py", line 2712, in all
return self._iter().all()
File "D:Pythonlibsite-packagessqlalchemyormquery.py", line 2850, in _iter
execution_options={"_sa_orm_load_options": self.load_options},
File "D:Pythonlibsite-packagessqlalchemyormsession.py", line 1688, in execute
conn = self._connection_for_bind(bind)
File "D:Pythonlibsite-packagessqlalchemyormsession.py", line 1530, in _connection_for_bind
engine, execution_options
File "D:Pythonlibsite-packagessqlalchemyormsession.py", line 747, in _connection_for_bind
conn = bind.connect()
File "D:Pythonlibsite-packagessqlalchemyenginebase.py", line 3166, in connect
return self._connection_cls(self, close_with_result=close_with_result)
File "D:Pythonlibsite-packagessqlalchemyenginebase.py", line 96, in __init__
else engine.raw_connection()
File "D:Pythonlibsite-packagessqlalchemyenginebase.py", line 3245, in raw_connection
return self._wrap_pool_connect(self.pool.connect, _connection)
File "D:Pythonlibsite-packagessqlalchemyenginebase.py", line 3216, in _wrap_pool_connect
e, dialect, self
File "D:Pythonlibsite-packagessqlalchemyenginebase.py", line 2070, in _handle_dbapi_exception_noconnection
sqlalchemy_exception, with_traceback=exc_info[2], from_=e
File "D:Pythonlibsite-packagessqlalchemyutilcompat.py", line 207, in raise_
raise exception
File "D:Pythonlibsite-packagessqlalchemyenginebase.py", line 3212, in _wrap_pool_connect
return fn()
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 307, in connect
return _ConnectionFairy._checkout(self)
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 767, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 425, in checkout
rec = pool._do_get()
File "D:Pythonlibsite-packagessqlalchemypoolimpl.py", line 146, in _do_get
self._dec_overflow()
File "D:Pythonlibsite-packagessqlalchemyutillanghelpers.py", line 72, in __exit__
with_traceback=exc_tb,
File "D:Pythonlibsite-packagessqlalchemyutilcompat.py", line 207, in raise_
raise exception
File "D:Pythonlibsite-packagessqlalchemypoolimpl.py", line 143, in _do_get
return self._create_connection()
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 253, in _create_connection
return _ConnectionRecord(self)
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 368, in __init__
self.__connect()
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 611, in __connect
pool.logger.debug("Error on connect(): %s", e)
File "D:Pythonlibsite-packagessqlalchemyutillanghelpers.py", line 72, in __exit__
with_traceback=exc_tb,
File "D:Pythonlibsite-packagessqlalchemyutilcompat.py", line 207, in raise_
raise exception
File "D:Pythonlibsite-packagessqlalchemypoolbase.py", line 605, in __connect
connection = pool._invoke_creator(self)
File "D:Pythonlibsite-packagessqlalchemyenginecreate.py", line 578, in connect
return dialect.connect(*cargs, **cparams)
File "D:Pythonlibsite-packagessqlalchemyenginedefault.py", line 584, in connect
return self.dbapi.connect(*cargs, **cparams)
File "D:Pythonlibsite-packagespymysqlconnections.py", line 353, in __init__
self.connect()
File "D:Pythonlibsite-packagespymysqlconnections.py", line 632, in connect
self._get_server_information()
File "D:Pythonlibsite-packagespymysqlconnections.py", line 1055, in _get_server_information
packet = self._read_packet()
File "D:Pythonlibsite-packagespymysqlconnections.py", line 707, in _read_packet
% (packet_number, self._next_seq_id)
sqlalchemy.exc.InternalError: (pymysql.err.InternalError) Packet sequence number wrong - got 1 expected 0
(Background on this error at: https://sqlalche.me/e/14/2j85)'''
Advertisement
Answer
Used poolclass=NullPool in create_engine. This has fixed the Packet Sequence error in this case.The app does not stop with Packet Sequence error anymore.