From b2b0bf38ddbee1158d91be4de5febc1f7939a860 Mon Sep 17 00:00:00 2001 From: Krytarik Raido Date: Fri, 17 May 2024 00:56:04 +0200 Subject: Fix infinite loop on faulty Changes files. LP: #1835212 --- mini-dinstall | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mini-dinstall b/mini-dinstall index a7b7363..157e46f 100755 --- a/mini-dinstall +++ b/mini-dinstall @@ -667,17 +667,20 @@ class IncomingDir(threading.Thread): # do we have anything to reprocess? for (changefilename, (starttime, nexttime, delay)) in list(self._reprocess_queue.items()): curtime = time.time() + if changefilename in fucked: + self._logger.warn('Skipping screwed Changes file "%s"' % changefilename) + continue try: changefile = ChangeFile() changefile.load_from_file(changefilename) except (ChangeFileException, IOError) as e: if not os.path.exists(changefilename): self._logger.info('Changes file "%s" got removed' % changefilename) + del self._reprocess_queue[changefilename] else: self._logger.exception('Unable to load Changes file "%s"' % changefilename) self._logger.warn('Marking "%s" as screwed' % changefilename) fucked.append(changefilename) - del self._reprocess_queue[changefilename] continue if curtime - starttime > self._max_retry_time: # We've tried too many times; reject it. -- cgit v1.2.3