Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Jun 2003 07:34:49 -0700 (PDT)
From:      Matthew Jacob <mjacob@feral.com>
To:        Kern Sibbald <kern@sibbald.com>
Cc:        freebsd-scsi@freebsd.org
Subject:   Re: SCSI tape data loss
Message-ID:  <20030603072944.U44880@beppo>
In-Reply-To: <1054645616.13630.161.camel@rufus>
References:  <3EDB31AB.16420.C8964B7D@localhost> <3EDB59A4.27599.C93270FB@localhost> <577540000.1054579840@aslan.btc.adaptec.com> <20030602131225.F71034@beppo> <1054645616.13630.161.camel@rufus>

next in thread | previous in thread | raw e-mail | index | archive | help

The fact that you're getting  ENOSPC means that you're getting to PEOT-
past LEOT. I guess I need to see the Bacula source to see why LEOT is
being missed. If you can build a kernel with CAMDEBUG and run

	camcontrol debug -I b:t:l

(bus:target:lun for the tape) and rerun the test, you'll get boatloads
of output, but an audit trail of what sastart and saerror are doing
around the PEOT timeframe.

There's other stuff here that I need to collect my thoughts on to mail
about. This will happen later today.

On Tue, 3 Jun 2003, Kern Sibbald wrote:

> Hello,
>
> Dan has now re-run our test of writing to two tapes. In
> this test, he told Bacula not to attempt to re-read the
> last block written, so Bacula wrote until -1 with errno=ENOSPC
> was returned, wrote two EOF marks then put up
> the next volume.
>
> The results were the same (more or less) 12 blocks of
> data were lost, which corresponds to the smaller size
> of the restored file that was split across two tapes.
>
> These 12 blocks were also at the end of the tape.
>
> During the restore, Bacula reported the following:
>
> 03-Jun-2003 05:01 undef-sd: RestoreFiles.2003-06-03_04.36.59 Error:
> Invalid block number. Expected 6060, got 6072
>
> and in Bacula's database, Bacula indicates that blocks
> 0 to 6072 were written to the first tape. In fact, only
> blocks 0 to 6071 were written to the first tape -- I
> see that Bacula has included the failed block in its
> count, which is wrong, but this doesn't change the results
> at all though.
>
> Bottom line:
>
> Even when we eliminate the code that backs
> up and re-reads the last block, we still see
> the last 12 or 13 blocks being lost. They were
> written by the program but are not physically
> on the tape.
>
> Next step:
>
> Dan is now running a test where Bacula will stop
> writing on the first tape before the EOM is reached.
>
> Best regards,
>
> Kern
>
>
>
>
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030603072944.U44880>