On Wed, Feb 27, 2002 at 12:51:33PM -0500, Chris Dahn wrote: > On Monday 25 February 2002 11:29 am, Carl Wilhelm Soderstrom wrote: > > due to permission problems, we've had repeated cases of tar returning error > > message '2', even tho amanda uses the --ignore-failed-read option (tar > > 1.3.25). as I understand it, amanda should still accept the backup data > > that tar got, but it doesn't. it simply ignores the backup. > > > > is there an option I need to turn on at compile time, or is there something > > I can set somewhere? my searches turned up a mail-list message (which I > > can't seem to find again), which said 'update to tar 1.3.19 or amanda > > 2.4.2p2'; but after surpassing both of those things (currently amanda > > 2.4.3b2 and tar 1.3.25), it's still no luck. :( > > > > Carl Soderstrom. > > Yes, I just started having the same problem due to a filesystem > inconsistency. Tar gets lots and lots of data, then returns '2', so all of it > is lost. I'm running redhat 2.4.16, tar 1.13.19. > >>> End of included message <<<
I don't know the real fix, but what I see is this: --ignore-failed-read is a gnutar option that allows it to continue on file read errors, just skipping the file on which it encounters the error and setting a flag. At termination, gnutar checks the flag and if set, exits with status 2 indicating some read errors. But otherwise the tarchive is ok. If the next component merely checks exit status non-zero, it thinks there was a failed tar and doesn't use the tarchive. One crude way to fix it is mess with the last few lines of tar.c, i.e. the end of main. The original is: if (exit_status == TAREXIT_FAILURE) error (0, 0, _("Error exit delayed from previous errors")); exit (exit_status); } TAREXIT_FAILURE is defined as to 2, and exit_status is our flag of read error. In the if statement, force exit_status to zero. An error message will still be printed, but it will look to the next component like everything was ok. Crude, but if you are using a special copy of gnutar for amanda only, maybe ok. -- Jon H. LaBadie [EMAIL PROTECTED] JG Computing 4455 Province Line Road (609) 252-0159 Princeton, NJ 08540-4322 (609) 683-7220 (fax)