Package: dump
Version: 0.4b42-2
Severity: important

restore triggers an error when an incremental dump removes a directory,
but reuses its inode for a file that is excluded from the dump (because
it, or a parent directory, has the nodump attribute).  The dump shows
the inode as still being in use, so restore will not mark it for
deletion right away, and gets confused later on, mistaking the directory
for a file.

This is made worse if some of the old directory's contents also had its
inodes reused that way, as the directory will no longer be empty.

(This may seem like a convoluted bug, but it actually plagues most of my
archived incremental backups.  Guess I should've actually tested one of
them at some point.  <g>)


Here's a demonstration:

  # dd if=/dev/zero of=loop.bin bs=1k count=1k
  # mke2fs -F loop.bin
  # mkdir mnt
  # mount -o loop loop.bin mnt
  # mkdir mnt/foo
  # touch mnt/foo/bar
  # dump -0u -D dumpdates -f dump0 mnt

  # mv mnt/foo/bar mnt/
  # rmdir mnt/foo
  # touch mnt/foo
  # chattr +d mnt/foo mnt/bar 
  # dump -1 -D dumpdates -f dump1 mnt

  # mkdir tmp
  # cd tmp
  # restore -r -f ../dump0
  # restore -r -f ../dump1
  bad entry: removeleaf: not a leaf
  name: ./foo
  [...]
  bad entry: freeing non-empty directory
  name: ./foo


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.29.6 (SMP w/1 CPU core)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dump depends on:
ii  e2fslibs                  1.41.10-1      ext2/ext3/ext4 file system librari
ii  libblkid1                 2.16.2-0       block device id library
ii  libc6                     2.10.2-6       Embedded GNU C Library: Shared lib
ii  libcomerr2                1.41.10-1      common error description library
ii  libdevmapper1.02.1        2:1.02.39-1    The Linux Kernel Device Mapper use
ii  libncurses5               5.7+20090803-2 shared libraries for terminal hand
ii  libreadline6              6.1-1          GNU readline and history libraries
ii  libselinux1               2.0.89-4       SELinux runtime shared libraries
ii  libsepol1                 2.0.40-2       SELinux library for manipulating b
ii  libuuid1                  2.16.2-0       Universally Unique ID library
ii  tar                       1.23-1         GNU version of the tar archiving u

dump recommends no packages.

dump suggests no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to