changeset 5917:3a6114d377f4

issue2551025: try handling operational error exception in close The sql_close function already ignores closed connection errors when raised by ProgrammingError. Trying to add similar for OperatonalError. But need to know what message is being returned. Changed travis config to: 1) make failure on python-3.7 raise a ci failure. 2) try to add support for python nightly 3) only run python-2.7 for diagnostic purpose so less waiting.
author John Rouillard <rouilj@ieee.org>
date Sun, 13 Oct 2019 13:16:17 -0400
parents 6b4857686365
children 10fb641f5152
files .travis.yml roundup/backends/back_mysql.py
diffstat 2 files changed, 16 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/.travis.yml	Sat Oct 12 21:40:18 2019 -0400
+++ b/.travis.yml	Sun Oct 13 13:16:17 2019 -0400
@@ -2,10 +2,11 @@
 
 python:
   - 2.7
-  - 3.4
-  - 3.5
-  - 3.6
-  - 3.7
+#test#  - 3.4
+#test#  - 3.5
+#test#  - 3.6
+#test#  - 3.7
+#test#  - nightly
 
 #I would like to build and test the maint-1.6 and trunk/default
 #but we need different environments for these:
@@ -20,8 +21,8 @@
  - xenial
 
 matrix:
-    allow_failures:  # 3.7 not ready for prime time yet.
-      - python: 3.7
+    allow_failures:  # nightly not ready for prime time yet.
+      - nightly
 
 sudo: false
 
@@ -83,8 +84,8 @@
   - cd $TRAVIS_BUILD_DIR
 
 install:
-  - pip install mysqlclient==1.3.13
-  #- pip install mysqlclient
+  #test#  - pip install mysqlclient==1.3.13
+  - pip install mysqlclient
   - pip install psycopg2
   - pip install gpg pytz whoosh pyjwt
   - pip install pytest-cov codecov
--- a/roundup/backends/back_mysql.py	Sat Oct 12 21:40:18 2019 -0400
+++ b/roundup/backends/back_mysql.py	Sun Oct 13 13:16:17 2019 -0400
@@ -587,6 +587,13 @@
         self.log_info('close')
         try:
             self.conn.close()
+        # issue2551025: with revision 1.3.14 of mysqlclient.
+        # It looks like you can get an OperationalError 2006
+        # raised for closing a closed handle.
+        except MySQLdb.OperationalError as message:
+            print str(message)
+            if str(message) != '':
+                raise
         except MySQLdb.ProgrammingError as message:
             if str(message) != 'closing a closed connection':
                 raise

Roundup Issue Tracker: http://roundup-tracker.org/