BackupPC-users

[BackupPC-users] BackupPC_tarCreate generats corrupted file listings (ver 3.1.0)

2009-03-17 14:39:53
Subject: [BackupPC-users] BackupPC_tarCreate generats corrupted file listings (ver 3.1.0)
From: John Rouillard <rouilj-backuppc AT renesys DOT com>
To: "General list for user discussion, questions and support" <backuppc-users AT lists.sourceforge DOT net>
Date: Tue, 17 Mar 2009 18:28:50 +0000
Hi all:

I am seeing corrupted directory listings using BackupPC_tarCreate. One
of the reported filenames has a bunch of nulls in the middle of it
using BackupPC-3.1.0.

I am doing a new BackupPC install and as part of the testing phase I
verify backups using:

    BackupPC_tarCreate -l

whose output is compared against a find to see if any files are
missing. I also use

  BackupPC_tarCreate | tar --compare

to validate the data. The file that is incorrectly listed seems to
verify ok as far as I can tell.

While running the verification procedures for BackupPC as we move it
to new box, I came across this problem:

Using:

   sudo -u backup /tools/BackupPC/bin/BackupPC_tarCreate -h ops03.example.com \
    -n -1 -l -s /var/www/html/cacti .| less

I see:

  [normal listing]
  ./lib/adodb/drivers/adodb-informix72.inc.php
  ./lib/adodb/drivers/adodb-ldap.inc.php
  ./lib/adodb/drivers/adodb-mssql.inc.php
  ./lib/adodb/drivers/adodb-mssqlpo.inc.php
  ./l^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@@^@^@^@
[a ton more null characters]
  ^@^@ib/adodb/drivers/adodb-mysql.inc.php
  ./lib/adodb/drivers/adodb-mysqli.inc.php
  ./lib/adodb/drivers/adodb-mysqlt.inc.php

I found this when comparing the files list produced by BackupPC
against the list generated by find on the same backup share. The nulls
show up in less as well as od -c. Using -L rather than -l to getthe
listing has the same issue but 40 lines later:

  100644   109/109        1935 ./lib/adodb/lang/adodb-pt-br.inc.php
  100644   109/109        1895 ./lib/adodb/lang/adodb-ro.inc.php
  100644   109/109        1954 ./lib/adodb/lang/adodb-ru1251.inc.php
  100644   109/109        1828
  ./lib/ad^@^@^@^@ [...]
  ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@odb/lang/adodb-sv.inc.php
  100644   109/109        2002 ./lib/adodb/datadict/datadict-access.inc.php
  100644   109/109        3936 ./lib/adodb/datadict/datadict-db2.inc.php
  100644   109/109        3789 ./lib/adodb/datadict/datadict-firebird.inc.php
  100644   109/109        2514 ./lib/adodb/datadict/datadict-generic.inc.php


Looking at the first directory in question doesn't show any nulls:

  sudo ls
  
/backup-pc/pc/ops03.example.com/14/f%2fvar%2fwww%2fhtml%2fcacti/flib/fadodb/fdrivers
  | cat -v

  attrib
  fadodb-access.inc.php
  fadodb-ado5.inc.php
  fadodb-ado_access.inc.php
  fadodb-ado.inc.php
  fadodb-ado_mssql.inc.php
  fadodb-borland_ibase.inc.php
  fadodb-csv.inc.php
  fadodb-db2.inc.php
  fadodb-fbsql.inc.php
  fadodb-firebird.inc.php
  fadodb-ibase.inc.php
  fadodb-informix72.inc.php
  fadodb-informix.inc.php
  fadodb-ldap.inc.php
  fadodb-mssql.inc.php
  fadodb-mssqlpo.inc.php
  fadodb-mysqli.inc.php
  fadodb-mysql.inc.php
  fadodb-mysqlt.inc.php
  fadodb-netezza.inc.php
  fadodb-oci805.inc.php
  fadodb-oci8.inc.php
  fadodb-oci8po.inc.php
  fadodb-odbc.inc.php
  fadodb-odbc_mssql.inc.php
  fadodb-odbc_oracle.inc.php
  fadodb-odbtp.inc.php
  fadodb-odbtp_unicode.inc.php
  fadodb-oracle.inc.php
  fadodb-pdo.inc.php
  fadodb-postgres64.inc.php
  fadodb-postgres7.inc.php
  fadodb-postgres.inc.php
  fadodb-proxy.inc.php
  fadodb-sapdb.inc.php
  fadodb-sqlanywhere.inc.php
  fadodb-sqlite.inc.php
  fadodb-sqlitepo.inc.php
  fadodb-sybase.inc.php
  fadodb-vfp.inc.php

Using od -c in place of cat -v doesn't show any null characters
either, so the listing issue isn't a result of some wierd form of
filesystem corruption AFAICT.  Anybody have any idea what's happening
here?

Anything I can flip on to get better debugging to get this fixed? This
could be a 64 bit issue as all the prior backuppc installs I have done
are 32 bit, but this newer box is also handling more data as as well
so ....

Some vital stats:

  OS: centos 5.2

  BackupPC version: 3.1.0

  uname -a: Linux ops03.example.com 2.6.18-92.1.22.el5 #1 SMP
        Tue Dec 16 11:57:43 EST 2008 x86_64 x86_64 x86_64 GNU/Linux

  filesystem: ext3 on a raid 6 array:

      /dev/md1              4.5T  462G  3.8T  11% /disk/md1

  tune2fs -l on device:

    tune2fs 1.39 (29-May-2006)
    Filesystem volume name:   <none>
    Last mounted on:          <not available>
    Filesystem UUID:          83165372-7c6b-4fdf-804e-e474df128a45
    Filesystem magic number:  0xEF53
    Filesystem revision #:    1 (dynamic)
    Filesystem features:      has_journal ext_attr resize_inode dir_index
        filetype needs_recovery sparse_super large_file
    Default mount options:    (none)
    Filesystem state:         clean
    Errors behavior:          Continue
    Filesystem OS type:       Linux
    Inode count:              1220968448
    Block count:              1220966208
    Reserved block count:     61048310
    Free blocks:              1124763690
    Free inodes:              1218526277
    First block:              0
    Block size:               4096
    Fragment size:            4096
    Reserved GDT blocks:      732
    Blocks per group:         32768
    Fragments per group:      32768
    Inodes per group:         32768
    Inode blocks per group:   1024
    Filesystem created:       Mon Feb  9 18:35:42 2009
    Last mount time:          Fri Feb 27 22:07:59 2009
    Last write time:          Fri Feb 27 22:07:59 2009
    Mount count:              7
    Maximum mount count:      21
    Last checked:             Mon Feb 16 18:34:36 2009
    Check interval:           15552000 (6 months)
    Next check after:         Sat Aug 15 18:34:36 2009
    Reserved blocks uid:      0 (user root)
    Reserved blocks gid:      0 (group root)
    First inode:              11
    Inode size:               128
    Journal inode:            8
    Default directory hash:   tea
    Directory Hash Seed:      96a10d7c-0695-4ff7-a26d-e01943d03693
    Journal backup:           inode blocks

  perl -V:

Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
  Platform:
    osname=linux, osvers=2.6.18-53.el5,
archname=x86_64-linux-thread-multi
    uname='linux builder10.centos.org 2.6.18-53.el5 #1 smp mon nov 12
02:14:55 est 2007 x86_64 x86_64 x86_64 gnulinux '
    config_args='-des -Doptimize=-O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -Dversion=5.8.8
-Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red
Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Dlibpth=/usr/local/lib64
/lib64 /usr/lib64 -Dprivlib=/usr/lib/perl5/5.8.8
-Dsitelib=/usr/lib/perl5/site_perl/5.8.8
-Dvendorlib=/usr/lib/perl5/vendor_perl/5.8.8
-Darchlib=/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
-Dsitearch=/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
-Dvendorarch=/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
-Darchname=x86_64-linux -Dvendorprefix=/usr -Dsiteprefix=/usr
-Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid
-Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog
-Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005
-Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto
-Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto
-Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto
-Dinc_version_list=5.8.7 5.8.6 5.8.5 -Dscriptdir=/usr/bin'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=define use64bitall=define uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE
-fno-strict-aliasing -pipe -Wdeclaration-after-statement
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/include/gdbm',
    optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
-Wdeclaration-after-statement -I/usr/local/include
-I/usr/include/gdbm'
    ccversion='', gccversion='4.1.2 20071124 (Red Hat 4.1.2-42)',
gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define,
longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =''
    libpth=/usr/local/lib64 /lib64 /usr/lib64
    libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread
-lc
    perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.5'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E
-Wl,-rpath,/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic'

Characteristics of this binary (from libperl): 
  Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
                        PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT
                        USE_ITHREADS USE_LARGE_FILES USE_PERLIO
                        USE_REENTRANT_API
  Built under linux
  Compiled at Sep 17 2008 13:37:41
  @INC:
    /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib64/perl5/site_perl/5.8.7/x86_64-linux-thread-multi
    /usr/lib64/perl5/site_perl/5.8.6/x86_64-linux-thread-multi
    /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.8.8
    /usr/lib/perl5/site_perl/5.8.7
    /usr/lib/perl5/site_perl/5.8.6
    /usr/lib/perl5/site_perl/5.8.5
    /usr/lib/perl5/site_perl
    /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib64/perl5/vendor_perl/5.8.7/x86_64-linux-thread-multi
    /usr/lib64/perl5/vendor_perl/5.8.6/x86_64-linux-thread-multi
    /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.8.8
    /usr/lib/perl5/vendor_perl/5.8.7
    /usr/lib/perl5/vendor_perl/5.8.6
    /usr/lib/perl5/vendor_perl/5.8.5
    /usr/lib/perl5/vendor_perl
    /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/5.8.8
    .


-- 
                                -- rouilj

John Rouillard
System Administrator
Renesys Corporation
603-244-9084 (cell)
603-643-9300 x 111

------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
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/

<Prev in Thread] Current Thread [Next in Thread>