BackupPC-users

Re: [BackupPC-users] 100,000+ errors in last nights backup

2009-08-12 18:16:27
Subject: Re: [BackupPC-users] 100,000+ errors in last nights backup
From: "Jeffrey J. Kosowsky" <backuppc AT kosowsky DOT org>
To: "General list for user discussion, questions and support" <backuppc-users AT lists.sourceforge DOT net>
Date: Wed, 12 Aug 2009 18:12:09 -0400
Steve Blackwell wrote at about 14:33:54 -0400 on Wednesday, August 12, 2009:
 > On Wed, 12 Aug 2009 14:18:04 -0400
 > "Jeffrey J. Kosowsky" <backuppc AT kosowsky DOT org> wrote:
 > 
 > > Steve Blackwell wrote at about 13:27:17 -0400 on Wednesday, August
 > > 12, 2009:
 > >  > On Wed, 12 Aug 2009 12:24:04 -0400
 > >  > "Jeffrey J. Kosowsky" <backuppc AT kosowsky DOT org> wrote:
 > >  > 
 > >  > > Steve Blackwell wrote at about 11:18:36 -0400 on Wednesday,
 > >  > > August 12, 2009:
 > >  > >  > On Wed, 12 Aug 2009 10:06:37 -0400
 > >  > >  > "Jeffrey J. Kosowsky" <backuppc AT kosowsky DOT org> wrote:
 > >  > >  > 
 > >  > >  > > Steve Blackwell wrote at about 08:49:23 -0400 on Wednesday,
 > >  > >  > > August 12, 2009:
 > >  > >  > >  > Backuppc has been behaving strangely lately. This is
 > >  > >  > >  > another instance.
 > >  > >  > 
 > >  > >  > ...
 > >  > >  > >  > 05:00:06 Running BackupPC_link steve (pid=8901) 
 > >  > >  > >  > 2009-08-12 05:00:08 BackupPC_link got error -3 when
 > >  > >  > >  > calling
 > >  > >  > >  > 
 > > MakeFileLink(/media/disk/pc/steve/151/f%2f/froot/f.gconf/fdesktop/fgnome/faccessibility/fkeyboard/f%25gconf.xml,
 > >  > >  > >  > b32585c3cc30b7ebb556d335a08554e3, 1)
 > >  > >  > >  > 
 > >  > >  > >  > followed by 100,000+ of the same error on different files
 > >  > >  > >  > 
 > >  > >  > >  > What is going on here?
 > >  > >  > >  > 
 > >  > >  > > 
 > >  > >  > > Error -3 means that calling the perl function link (between
 > >  > >  > > a file in the pool and a name in the pc tree) failed.
 > >  > >  > > 
 > >  > >  > > Try manually doing something like the following from the
 > >  > >  > > command line: link
 > >  > >  > > b32585c3cc30b7ebb556d335a08554e3 
 > > /media/disk/pc/steve/151/f%2f/froot/f.gconf/fdesktop/fgnome/faccessibility/fkeyboard/f%25gconf.xml
 > >  > >  > 
 > >  > >  > Where do I need to be to run this? 
 > >  > > 
 > >  > > >From the command line anywhere. Just type the command as-is.
 > >  > > Actually type it as:
 > >  > > su -u backuppc link ...
 > >  > > 
 > >  > > so that it runs as user 'backuppc'
 > >  > > If it works, you can undo it by typing:
 > >  > > rm 
 > > /media/disk/pc/steve/151/f%2f/froot/f.gconf/fdesktop/fgnome/faccessibility/fkeyboard/f%25gconf.xml
 > >  > > (assuming the file didn't exist previously)
 > >  > 
 > >  > su doesn't have a -u option.
 > >  > 
 > > 
 > > run: sudo -u backuppc
 > > or su backuppc -c "link..."
 > 
 > # sudo -u backuppc link
 > b32585c3cc30b7ebb556d335a08554e3 
 > /media/disk/pc/steve/151/f%2f/froot/f.gconf/fdesktop/fgnome/faccessibility/fkeyboard/f%25gconf.xml
 > link: cannot create link
 > `/media/disk/pc/steve/151/f%2f/froot/f.gconf/fdesktop/fgnome/faccessibility/fkeyboard/f%25gconf.xml'
 > to `b32585c3cc30b7ebb556d335a08554e3': No such file or directory
 > 
 > 
 > Jeffrey, I'm now thinking that two backups have somehow been scheduled
 > at the same. See the Les Miskell thread.
 > 
 > Steve
 > 

I don't know. I am perplexed since the code that is creating the error
code '3' is as follows (from MakeFileLink in Lib.pm):

    return -1 if ( !-f $name );
    for ( $i = -1 ; ; $i++ ) {
        return -2 if ( !defined($rawFile = $bpc->MD52Path($d,
    $compress)) );
        $rawFile .= "_$i" if ( $i >= 0 );
        if ( -f $rawFile ) {
            if ( (stat(_))[3] < $bpc->{Conf}{HardLinkMax}
                    && !compare($name, $rawFile) ) {
                unlink($name);
                return -3 if ( !link($rawFile, $name) );


Now:
        $name exists (per the test in the first line)
        $rawFile exists (per the test in line 6)
yet the link fails a couple of lines later.

So unless there is an incredibly precise race condition and assuming
links work on your machine, the 'link' in the final line should
succeed. It is hard to believe that there could be a repeatable race
condition with another backup that is so precise that a file exists in
one line and then no longer exists just a couple of simple lines of
perl code later.

I'm still wondering whether there is some problem with
linking/unlinking on your computer. So the problem is either that the
unlink (i.e., delete) fails in the next to last line or the link fails
in the last line. You may also want to look at ownership/permissions
in your pc tree to make sure that the relevant files and directories
are writable by user backuppc.

Also, why don't you try re-running the manual link line that I gave you but
this time link against a known *existing* (random) pool file. Also try
something like:

su backuppc -c "touch 
/media/disk/pc/steve/151/f%2f/froot/f.gconf/fdesktop/fgnome/faccessibility/fkeyboard/tempfile"
su backuppc -c "rm
/media/disk/pc/steve/151/f%2f/froot/f.gconf/fdesktop/fgnome/faccessibility/fkeyboard/tempfile"

This will test user backuppc's ability to create and delete files in
the pc tree where it failed before.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
BackupPC-users mailing list
BackupPC-users AT lists.sourceforge DOT net
List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki:    http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/