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

Reply via email to