Pressing ctrl-c randomly during ripping leads to ValueError. jack catches ValueError already in one place, but it needs to do the same in two other cases. Debian #352754. (-) SPACE:1.60GB waiting_WAVs:01 DAE:1+0 ENC:0+1 errors: 15 :-[ Traceback (most recent call last): File "/usr/bin/jack", line 235, in ? global_error = jack_main_loop.main_loop(mp3s_todo, wavs_todo, space, dae_queue, enc_queue, track1_offset) File "/usr/lib/python2.3/site-packages/jack_main_loop.py", line 216, in main_loop x = i['file'].read() ValueError: I/O operation on closed file *warning* abnormal exit zsh: exit 1 jack 1815:tbm@deprecation: ~/tmp/jack] diff -urN jack-3.1.1+cvs20050801~/jack_main_loop.py jack-3.1.1+cvs20050801/jack_main_loop.py --- jack-3.1.1+cvs20050801~/jack_main_loop.py 2006-02-14 01:13:10.000000000 +0000 +++ jack-3.1.1+cvs20050801/jack_main_loop.py 2006-02-14 01:13:42.000000000 +0000 @@ -215,7 +215,7 @@ if os.uname()[0] == "Linux" and i['type'] != "image_reader": try: x = i['file'].read() - except IOError: + except (IOError, ValueError): pass else: read_chars = 0 @@ -223,7 +223,7 @@ while read_chars < jack_helpers.helpers[i['prog']]['status_blocksize']: try: xchar = i['file'].read(1) - except IOError: + except (IOError, ValueError): break x = x + xchar read_chars = read_chars + 1 @@ -263,9 +263,7 @@ x = "" try: x = exited_proc['file'].read() - except IOError: - pass - except ValueError: + except (IOError, ValueError): pass exited_proc['buf'] = (exited_proc['buf'] + x)[-jack_helpers.helpers[exited_proc['prog']]['status_blocksize']:] exited_proc['file'].close()