[Bug 1757565] Re: btrfs and tar sparse truncate archives
Ryan Harper
1757565 at bugs.launchpad.net
Thu Mar 22 21:58:31 UTC 2018
v4.15 Final: GOOD
root at ubuntu:~# uname -r
4.15.0-041500-generic
root at ubuntu:~# mount /dev/sda /mnt
root at ubuntu:~# grep sda /proc/mounts
/dev/sda /mnt btrfs rw,relatime,space_cache,subvolid=5,subvol=/ 0 0
root at ubuntu:~# SPARSE="-S"; rm -rf /mnt/tmp; md5sum /usr/bin/python3.6; mkdir -p /mnt/tmp; cp -a /usr/bin/python3.6 /mnt/tmp; tar -C /mnt/tmp $SPARSE -czf /mnt/test.tgz .; tar $SPARSE -xzf /mnt/test.tgz -O | md5sum
e4121d2f3126b8c364bfa1aaa82371a3 /usr/bin/python3.6
e4121d2f3126b8c364bfa1aaa82371a3 -
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to tar in Ubuntu.
https://bugs.launchpad.net/bugs/1757565
Title:
btrfs and tar sparse truncate archives
Status in linux package in Ubuntu:
Triaged
Status in tar package in Ubuntu:
New
Status in linux source package in Artful:
Triaged
Status in tar source package in Artful:
New
Bug description:
root at ubuntu:~# lsb_release -rd
Description: Ubuntu 17.10
Release: 17.10
root at ubuntu:~# apt-cache policy linux-image-virtual
linux-image-virtual:
Installed: 4.13.0.37.40
Candidate: 4.13.0.37.40
Version table:
*** 4.13.0.37.40 500
500 http://archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu artful-security/main amd64 Packages
100 /var/lib/dpkg/status
4.13.0.16.17 500
500 http://archive.ubuntu.com/ubuntu artful/main amd64 Packages
3. Taring files into an archive are not truncated
4. Files included in tar are filled with NULLs
To reproduce, run an Artful system with one spare disk:
- mkfs.btrfs -f /dev/sda
- mount /dev/sda /mnt
- grep sda /proc/mounts
/dev/sda /mnt btrfs rw,relatime,space_cache,subvolid=5,subvol=/ 0 0
Then run this script which copies a 4MB binary to a btrfs filesystem,
tars the directory up containing the binary; then untars to stdout and
md5sum compares, showing it's different.
% SPARSE="-S"; rm -rf /mnt/tmp; md5sum /usr/bin/python3.6; mkdir -p /mnt/tmp; cp -a /usr/bin/python3.6 /mnt/tmp; tar -C /mnt/tmp $SPARSE -czf /mnt/test.tgz .; tar $SPARSE -xzf /mnt/test.tgz -O | md5sum
e4121d2f3126b8c364bfa1aaa82371a3 /usr/bin/python3.6
0ce8c4139740198926273853defcb12a -
And now without the sparse flag:
# SPARSE=""; rm -rf /mnt/tmp; md5sum /usr/bin/python3.6; mkdir -p /mnt/tmp; cp -a /usr/bin/python3.6 /mnt/tmp; tar -C /mnt/tmp $SPARSE -czf /mnt/test.tgz .; tar $SPARSE -xzf /mnt/test.tgz -O | md5sum
e4121d2f3126b8c364bfa1aaa82371a3 /usr/bin/python3.6
e4121d2f3126b8c364bfa1aaa82371a3 -
This has been reported to both gnu-tar and linux-btrfs; I'm not aware of an actual fix.
Note that Xenial 4.4 kernels do not exhibit this behavior, and Bionic 4.15 kernel appears to be fixed as well though I'm not sure what the difference is.
References:
https://patchwork.kernel.org/patch/10151037/
https://www.spinics.net/lists/linux-btrfs/msg56768.html
https://www.spinics.net/lists/linux-btrfs/msg57111.html
ProblemType: Bug
DistroRelease: Ubuntu 17.10
Package: linux-image-virtual 4.13.0.37.40
ProcVersionSignature: Ubuntu 4.13.0-37.42-generic 4.13.13
Uname: Linux 4.13.0-37-generic x86_64
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Mar 21 22:55 seq
crw-rw---- 1 root audio 116, 33 Mar 21 22:55 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay': 'aplay'
ApportVersion: 2.20.7-0ubuntu3.7
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord': 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
CRDA: N/A
Date: Wed Mar 21 23:08:05 2018
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig': 'iwconfig'
Lsusb: Error: command ['lsusb'] failed with exit code 1:
MachineType: QEMU Standard PC (i440FX + PIIX, 1996)
PciMultimedia:
ProcEnviron:
TERM=xterm-256color
PATH=(custom, no user)
LANG=C.UTF-8
SHELL=/bin/bash
ProcFB:
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.13.0-37-generic root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyS0
RelatedPackageVersions:
linux-restricted-modules-4.13.0-37-generic N/A
linux-backports-modules-4.13.0-37-generic N/A
linux-firmware N/A
RfKill: Error: [Errno 2] No such file or directory: 'rfkill': 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/01/2014
dmi.bios.vendor: SeaBIOS
dmi.bios.version: Ubuntu-1.8.2-1ubuntu1
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.version: pc-i440fx-xenial
dmi.modalias: dmi:bvnSeaBIOS:bvrUbuntu-1.8.2-1ubuntu1:bd04/01/2014:svnQEMU:pnStandardPC(i440FX+PIIX,1996):pvrpc-i440fx-xenial:cvnQEMU:ct1:cvrpc-i440fx-xenial:
dmi.product.name: Standard PC (i440FX + PIIX, 1996)
dmi.product.version: pc-i440fx-xenial
dmi.sys.vendor: QEMU
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1757565/+subscriptions
More information about the foundations-bugs
mailing list