Crash report: exceptions.OSError
Leo Breebaart
leo@lspace.org
Thu, 14 Mar 2002 18:20:51 +0100
Hi all,
One of the Changelog entries for 0.5.2 reads:
[...] maybe this will fix a bug reported by John Goerzen wherein
rdiff-backup can crash if file is deleted while rdiff-backup is
processing it.
I am afraid that (a form of) this problem is still present in 0.5.4.
After our earlier troubles with inc files (see my previous mail to the
list) we decided to start over with a clean slate. So we removed the
rdiff-backup-data directory, and restarted rdiff-backup.
After a while it crashed with the stack trace I've appended to the end
of this mail. It is indeed the case that while rdiff-backup was running
I was also doing some housekeeping and happened to delete the
'jpegoptim' directory in question -- but that's no excuse for a crash...
Regards,
--
Leo Breebaart <leo@lspace.org>
---------------------------------------------------------------------------
[falcon] # python2.2 ./rdiff-backup --force --exclude 'reeuwijk.*cache4'
--exclude 'leo.*mozilla.*Cache' --exclude /falcon/lost+found --exclude
/falcon/tmp --change-source-perms /falcon /backup/falcon.bak
Exception [Errno 2] No such file or directory:
'/falcon/leo/king/jpegoptim' raised of class exceptions.OSError
File "./rdiff-backup", line 4467, in check_skip_error
try: return thunk()
File "./rdiff-backup", line 4408, in error_checked
indexed_tuple = collated.next()
File "./rdiff-backup", line 3288, in Collate2Iters
try: relem1 = riter1.next()
File "./rdiff-backup", line 4303, in diffs
for dsrp, dest_sig in collated:
File "./rdiff-backup", line 3296, in Collate2Iters
try: relem2 = riter2.next()
File "./rdiff-backup", line 3221, in Signatures
for rp in rp_iter:
File "./rdiff-backup", line 4357, in generate_dissimilar
for src_rorp, dest_dsrp in collated:
File "./rdiff-backup", line 3288, in Collate2Iters
try: relem1 = riter1.next()
File "./rdiff-backup", line 387, in yielda
elem = iter.next() # exception will be passed
File "./rdiff-backup", line 3641, in helper
for dsrp in helper(dsrpath.append(filename)):
File "./rdiff-backup", line 3641, in helper
for dsrp in helper(dsrpath.append(filename)):
File "./rdiff-backup", line 3641, in helper
for dsrp in helper(dsrpath.append(filename)):
File "./rdiff-backup", line 3638, in helper
dir_listing = dsrpath.listdir()
File "./rdiff-backup", line 2437, in listdir
return self.conn.os.listdir(self.path)
---------------------------------------------------------------------------