From 478b1642b2a0ebaf211d09aea9f8e549f523bca1 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Tue, 21 Feb 2017 14:27:31 -0500 Subject: [PATCH] Eat AttributeError in peewee close database call Fixes https://sentry.io/coreos/backend-production/issues/104257892/ --- data/database.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/data/database.py b/data/database.py index 83dbe74de..f07ad6592 100644 --- a/data/database.py +++ b/data/database.py @@ -305,13 +305,18 @@ get_epoch_timestamp_ms = lambda: int(time.time() * 1000) def close_db_filter(_): - if not db.is_closed(): - logger.debug('Disconnecting from database.') - db.close() + try: + if not db.is_closed(): + logger.debug('Disconnecting from database.') + db.close() - if read_slave.obj is not None and not read_slave.is_closed(): - logger.debug('Disconnecting from read slave.') - read_slave.close() + if read_slave.obj is not None and not read_slave.is_closed(): + logger.debug('Disconnecting from read slave.') + read_slave.close() + except AttributeError: + # If the database is closed between the time we check on line 309 and db.close() is called on + # 311, then an AttributeError will be raised. Simply eat this exception and continue onward. + pass class QuayUserField(ForeignKeyField):