Я делаю кодирование на трекере проблем с обзором. Наш travis ci начал давать сбой, когда был выпущен релиз 1.3.14 mysqlclient. Тест кода в порядке с 1.3.13. В примечаниях к выпуску я не вижу ничего, что могло бы объяснить эту проблему.
Более подробная информация доступна по адресу: https://issues.roundup -tracker.org / issue2551025
Резюмениже:
Все сбои происходят в этом бите кода:
def sql_close(self):
self.log_info('close')
try:
> self.conn.close()
E OperationalError: (2006, '')
roundup/backends/back_mysql.py:589: OperationalError
Ранее поиск сообщал, что это может быть исправлено путем увеличения значения max_allowed_packet на сервере mysql. Я изменил это до 500M (с 16M). Но ошибка все еще существует.
Не все тесты mysql дают сбой, только 23 из 140 дают сбой.
Кто-нибудь знает внутреннюю часть _mysql или клиентскую библиотеку, которая может дать мне подсказку относительнопочему закрытие не удается?
Я предполагаю, что закрытие просто разрушает сокет и соединение, но, может быть, оно делает больше ??
Понижение до 1.3.13 "решает" проблему, ноне очень хорошее решение, так как текущая версия 1.4.x. Я проверил, используя текущую версию, используя установку pip, и она не работает так же, как 1.3.14.
Код, вызывающий ошибку:
def sql_close(self):
self.log_info('close')
try:
> self.conn.close()
E OperationalError: (2006, '')
roundup/backends/back_mysql.py:589: OperationalError
Я думал, что был кодпуть в некоторых тестах, которые привели бы к двойному вызову этой функции. Но попытка защититься от этого не остановила ошибку.
Я ожидаю, что закрытие закроет соединение БД, не вызывая OperationalError.
Я надеюсь получить некоторую подсказку, почему это такпроисходящее или другие вещи, на которые нужно смотреть.