thomasvs / morituri

For those about to RIP - a Unix CD ripper preferring accuracy over speed
GNU General Public License v3.0
301 stars 42 forks source link

Crash with ZeroDivisionError and IndexError on `rip offset find` #127

Open CreamyCookie opened 9 years ago

CreamyCookie commented 9 years ago
$ rip offset find

Checking device /dev/cdrom
Device /dev/sr0 is mounted, unmounting
Trying read offset 6 ...                      
Trying read offset 48 ...                     
Trying read offset 102 ...                    
Trying read offset 667 ...                    
Offset of device is likely 667, confirming ...
Traceback (most recent call last):            
  File "/usr/lib/python2.7/dist-packages/morituri/extern/task/task.py", line 511, in c
    callable(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/morituri/program/cdparanoia.py", line 303, in _read
    self._done()
  File "/usr/lib/python2.7/dist-packages/morituri/program/cdparanoia.py", line 377, in _done
    self.quality = self._parser.getTrackQuality()
  File "/usr/lib/python2.7/dist-packages/morituri/program/cdparanoia.py", line 193, in getTrackQuality
    return min(frames * 2.0 / reads, 1.0)
ZeroDivisionError: float division by zero
Traceback (most recent call last):
  File "/usr/bin/rip", line 35, in <module>
    sys.exit(main.main(sys.argv[1:]))
  File "/usr/lib/python2.7/dist-packages/morituri/rip/main.py", line 33, in main
    ret = c.parse(argv)
  File "/usr/lib/python2.7/dist-packages/morituri/rip/main.py", line 111, in parse
    logcommand.LogCommand.parse(self, argv)
  File "/usr/lib/python2.7/dist-packages/morituri/extern/command/command.py", line 385, in parse
    return self.subCommands[command].parse(args[1:])
  File "/usr/lib/python2.7/dist-packages/morituri/extern/command/command.py", line 385, in parse
    return self.subCommands[command].parse(args[1:])
  File "/usr/lib/python2.7/dist-packages/morituri/extern/command/command.py", line 347, in parse
    ret = self.do(args)
  File "/usr/lib/python2.7/dist-packages/morituri/rip/offset.py", line 184, in do
    c, i = match(archecksum, track, responses)
  File "/usr/lib/python2.7/dist-packages/morituri/rip/offset.py", line 143, in match
    if archecksum == r.checksums[track - 1]:
IndexError: list index out of range
thomasvs commented 9 years ago

Could you run this with RIP_DEBUG=5 in the environment and put the result somewhere?