使用1.3.14版本而不是1.3.13版本的mysqlclient python 2.7或3.5+关闭数据库时出现错误2006

时间:2019-10-13 01:43:29

标签: mysql-python

我在综述问题跟踪器上进行了一些编码。当mysqlclient的1.3.14版本发布时,我们的travis ci开始失败。代码在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

较早的搜索报告此问题可以通过增加mysql服务器上的max_allowed_pa​​cket值来解决。我将其更改为500M(从16M)。但是错误仍然存​​在。

不是所有的mysql测试都失败,140个中只有23个失败。

有人知道_mysql或客户端库的内部结构,这些人可以为我提供关闭失败原因的线索吗?

我认为闭合只是会断开套接字和连接,但是也许它还能做更多?

降级到1.3.13可以解决此问题,但由于当前版本为1.4.x,因此不是一个很好的解决方案。我已经通过pip install使用当前版本进行了测试,但失败的方式与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。

我希望找到一些线索,以了解为什么会发生这种情况或要看其他事情。

0 个答案:

没有答案