[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-ddrescue] ddrescuelog (v1.16): issue with an empty domain input log
From: |
Stefan Vargyas |
Subject: |
[Bug-ddrescue] ddrescuelog (v1.16): issue with an empty domain input logfile |
Date: |
Sat, 16 Mar 2013 15:50:33 -0700 (PDT) |
Dear Antonio,
While using ddrescue v1.16 on a bunch of ten year and more old CDROMs, I can
across the following issue of ddrescuelog while running something like the
command below on one of these discs:
$ ddrescue -n -b2048 /dev/sr0 foo.iso foo.log
GNU ddrescue 1.16
Press Ctrl-C to interrupt
rescued: 0 B, errsize: 0 B, current rate: 0 B/s
ipos: 0 B, errors: 0, average rate: 0 B/s
opos: 0 B, time since last successful read: 1 s
Finished
(The disc was indeed quite damaged: e.g. isoinfo reported something like 'Seek
error on old image' and the kernel said that 'cdrom: This disc doesn't have any
tracks I recognize!'.)
When passing the logfile above (please find it attached as empty-domain.log) to
ddrescuelog, the program gets into error:
$ ddrescuelog -t foo.log
ddrescuelog: Logfile 'foo.log' does not exist.
Upon looking into the source files it came out that in fact ddrescuelog
correctly reads in the logfile (logbook.cc:240) but only is misinterpreting
'logfile_isize_ == 0' as 'file does not exist'. 'Logbook::logfile_isize_' gets
to be '0' in logbook.cc:242 from the value contained in 'sblock_vector' as
resulted upon the call to 'read_logfile':
(gdb) print sblock_vector.size()
$1 = 1
(gdb) print sblock_vector[0]
$2 = (Sblock &) @0x615100: {<Block> = {pos_ = 0, size_ = 0}, status_ =
Sblock::non_tried}
By now a plausible fixing patch was immediate. Please see it enclosed.
Sincerely,
Stefan Vargyas.
bug-report-ddrescue-1.16-ddrescuelog-empty-domain.patch
Description: Binary data
empty-domain.log
Description: Text document
- [Bug-ddrescue] ddrescuelog (v1.16): issue with an empty domain input logfile,
Stefan Vargyas <=