From 298f13432a3079c374f53debb06f032f5d4fe2e8 Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Sun, 20 Jan 2013 20:02:46 +0100 Subject: [PATCH] retry reading toc 3 times, often fails after loading --- morituri/rip/cd.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/morituri/rip/cd.py b/morituri/rip/cd.py index 3edd585..ebe8283 100644 --- a/morituri/rip/cd.py +++ b/morituri/rip/cd.py @@ -146,8 +146,18 @@ Log files will log the path to tracks relative to this directory. # first, read the normal TOC, which is fast ptoc = cache.Persister(self.options.toc_pickle or None) if not ptoc.object: - t = cdrdao.ReadTOCTask(device=device) - function(runner, t) + tries = 0 + while True: + tries += 1 + t = cdrdao.ReadTOCTask(device=device) + try: + function(runner, t) + break + except: + if tries > 3: + raise + self.debug('failed to read TOC after %d tries, retrying' % tries) + version = t.tasks[1].parser.version from pkg_resources import parse_version as V # we've built a cdrdao 1.2.3rc2 modified package with the patch