diff --git a/debexpo/cronjobs/removeolduploads.py b/debexpo/cronjobs/removeolduploads.py index c310a30005b207130c03cee77f9e6508e9a0ad34..3e1888ffd9d73bbc30aac168ac3cce050803aaaf 100644 --- a/debexpo/cronjobs/removeolduploads.py +++ b/debexpo/cronjobs/removeolduploads.py @@ -100,6 +100,7 @@ class RemoveOldUploads(BaseCronjob): self.log.debug("Processed all messages up to #%s on %s" % (list_name.value, list_name.code)) meta.session.merge(list_name) meta.session.commit() + self.mailer.disconnect_from_server() def _remove_old_packages(self): now = datetime.datetime.now() diff --git a/debexpo/lib/email.py b/debexpo/lib/email.py index 55522700f6d4e121554a263800322b43f8fbf6df..88bcb9ef93b579d67ede87486d0a735ce0a21961 100644 --- a/debexpo/lib/email.py +++ b/debexpo/lib/email.py @@ -140,8 +140,13 @@ class Email(object): (_, count, first, last, _) = self.nntp.group(list_name) log.debug("Fetching messages %s to %s on %s" % (changed_since, last, list_name)) except nntplib.NNTPError as e: + self.established = False log.error("Connecting to NNTP server %s failed: %s" % (pylons.config['debexpo.nntp_server'], str(e))) return + except EOFError: + self.established = False + log.error("NNTP server %s closed connection" % (pylons.config['debexpo.nntp_server'])) + return try: (_, messages) = self.nntp.xover(str(changed_since), str(last)) @@ -168,11 +173,13 @@ class Email(object): def disconnect_from_server(self): self.nntp.quit() - + self.established = False def connection_established(self): if not self.established: - log.debug("Connection to NNTP server not established"); - return False + self.connect_to_server() + if not self.established: + log.debug("Connection to NNTP server not established"); + return self.established return True