MySQL-server-has-gone-away
MySQL-server-has-gone-away copied to clipboard
autocommit not wrapped
This library is not handling "mysql server has gone away" exceptions when autocommit is executed so I am receiving the error below when I execute any django orm query, for example "TicketSold.objects.filter(tapos_performance_code__in=perfs).delete()":
on_deleted error: Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\mysql\base.py", line 257, in _set_autocommit
self.connection.autocommit(autocommit)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\MySQLdb\connections.py", line 211, in autocommit
_mysql.connection.autocommit(self, on)
MySQLdb._exceptions.OperationalError: (2006, 'MySQL server has gone away')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\sensible-sync\utils.py", line 12, in wrapper
return func(*args, **kwargs)
File "C:\Users\Administrator\Desktop\sensible-sync\FileStream.py", line 45, in on_deleted
self.handle_deleted(event)
File "C:\Users\Administrator\Desktop\sensible-sync\sync\lib\SensiblePlaydate2TaposStream.py", line 120, in handle_deleted
TicketSold.objects.filter(tapos_performance_code__in=perfs).delete()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\query.py", line 711, in delete
deleted, _rows_count = collector.delete()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\deletion.py", line 284, in delete
with transaction.atomic(using=self.using, savepoint=False):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\transaction.py", line 201, in __enter__
connection.set_autocommit(False, force_begin_transaction_with_broken_autocommit=True)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\base\base.py", line 405, in set_autocommit
self._set_autocommit(autocommit)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\mysql\base.py", line 257, in _set_autocommit
self.connection.autocommit(autocommit)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\mysql\base.py", line 257, in _set_autocommit
self.connection.autocommit(autocommit)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\MySQLdb\connections.py", line 211, in autocommit
_mysql.connection.autocommit(self, on)
django.db.utils.OperationalError: (2006, 'MySQL server has gone away')
how can I wrap autocommit too?
@diegobill this is weird, I'm using autocommit true and it works.
- Which version of django are you using?
- Do you use atomic transaction decorator under multiple queries?
Can you collaborate with PR? I would be happy to merge it.
@akoidan , I am using django 2.2.6
I am not using atomic transaction decorator
Roger that @diegobill
I will check this tomorrow if I have time.