bug-ddrescue
[Top][All Lists]
Advanced

[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.


Attachment: bug-report-ddrescue-1.16-ddrescuelog-empty-domain.patch
Description: Binary data

Attachment: empty-domain.log
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]