From: Craig B. <cr...@at...> - 2002-11-18 07:38:12
|
> Well, I thought I had this resolved, but not really. > > I'm attempting to back up a Unix machine using tar/ssh. The connection is > being made just fine, and part of the backup is succeeding nicely. Then, > tar exits with a mysterious 512 error. Here's the log: > > 2002/11/13 13:02:08 full backup started for directory /home/heather > (xferPid=13871, tarPid=13870) > 2002/11/13 13:02:10 full backup started for directory /home/mark > (xferPid=13874, tarPid=13873) > 2002/11/13 13:24:59 full backup started for directory /usr/local/phonelogs > (xferPid=13941, tarPid=13940) > 2002/11/13 13:25:10 full backup started for directory > /usr/local/cvs/cvsroot (xferPid=13943, tarPid=13942) > 2002/11/13 13:25:13 Got fatal error during xfer (Tar exited with error 512 > () status) > 2002/11/13 13:25:23 Dump aborted (Tar exited with error 512 () status) > > I looked in the mailing list archives and found that this was some sort of > trouble with tar needing to display something, but STDOUT was already > being used for dumping the data out, so it displays on STDERR, which in > turn causes backuppc to choke. I did what the previous resolution had > recommended, and got rid of the -v in the $Conf{TarClientCmd} for this > machine. That leaves the following $Conf{TarClientCmd}: > $Conf{TarClientCmd} = '$sshPath -q -n -l root $host' > . ' $tarPath -c -f - -C $shareName+' > . ' --totals'; > > I have also looked around trying to find out what an exit status of 512 > is, to no avail. > > Anyone else seen this problem and resolved it? The previous poster did suggest that removing the -v solved the problem for them. This is a mystery to me since the stdout and stderr from the remote tar shouldn't get mixed up: the archive gets dumped to stdout, and the verbose messages and errors get written to stderr; BackupPC is careful to keep them apart. A tar exit status of 2 (= 512) is a failure, either fatal or minor. This is probably something like a file that it couldn't read, or perhaps a file that changed while it was being dumped by tar. Try this example: mkdir test cd test touch file1 file2 chmod 0 file1 tar cvf tar.out file1 file2 echo $status Tar will produce this output: tar: file1: Cannot open: Permission denied file2 tar: Error exit delayed from previous errors And the echo $status will print 2 (assuming you are using csh or tcsh), which gets returned as 512 (exit_status << 8) to BackupPC. You should look at the xfer log file and see what errors tar is giving. If it's an unreadable file, you could add this option to tar: --ignore-failed-read do not exit with nonzero on unreadable files It is likely BackupPC should treat a tar exit status of 2 as ok, provided tar also said "Error exit delayed from previous errors". Looking at the source code for tar shows that other fatal errors also give an exit status of 2, but the previous message allows you to tell the difference. If you or others agree I'll add it to the TODO list. Craig |
From: Johnny L. W. <jo...@ma...> - 2002-11-18 20:38:22
|
> You should look at the xfer log file and see what errors tar is giving. > If it's an unreadable file, you could add this option to tar: > > --ignore-failed-read do not exit with nonzero on unreadable files > > It is likely BackupPC should treat a tar exit status of 2 as ok, provided > tar also said "Error exit delayed from previous errors". Looking at > the source code for tar shows that other fatal errors also give an exit > status of 2, but the previous message allows you to tell the difference. > If you or others agree I'll add it to the TODO list. Woohoo! Problem solved. Craig, if I could buy you a 6-pack, I would. :) And I'd buy 6 for Toby, too. ;) Actually, this didn't fix all the problems, but it did fix enough errors so I could tell what was going on well enough to figure out that I was listing some incorrect directories in the config file. Thanks for all the help: # Last status is state "idle" (backup done) as of 11/18 14:35 --Me |