> > Okay... I've just had a look through. The GetLastError windows command > > is called in three main places. In the win32_tape_read and _write > > routines, there is additional parsing of the error done, with bEO[FTD] > > set accordingly. Should I leave them as-is and just return b_errno_win32 > > when the error is unknown (default case) or should I set bEO[FTD] > > accordingly and still return b_errno_win32? > > Unfortunately, I am out *all* day today, and to answer your question > completely, I will need to look at the code. First, I recommend pointing me > to the exact line(s) where the problem and bEO[FTD] is happening. > > If I remember correctly, the the bEO... flag *must* be set correctly depending > on the situation.
I think I've got the hang of it. Unfortunately there are other places that depend on the value of errno, in particular EIO for a generic error and ENOSPC for out of space. Just setting b_errno_win32 could break those. I think the correct approach is to set simulate EIO when we know what the error is and return b_errno_win32 when we don't. > > The error I am getting is EIO, which is the default case. Hopefully the > > proper error reporting will tell me what the actual problem is now... It > > might be a few days before I see the error though. > > > > OK. > I'm getting errors within the first 30G of the backup so it's pretty reproducible within 10 minutes or so. After all that though, the error I'm getting is "The request could not be performed because of an I/O device error."! Still, all the tests I do on the drive say it's fine so I still think the problem is software not hardware although I'm not as sure as I was... James ------------------------------------------------------------------------------ _______________________________________________ Bacula-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/bacula-devel
