[Bug 1735046] Re: mkfs.btrfs error checking mount status of loop device backing_file
Ryan Harper
1735046 at bugs.launchpad.net
Fri Dec 15 17:37:18 UTC 2017
** Description changed:
+ SRU Template
+
+ [Impact]
+
+ * Users may be unable to successfully create a btrfs filesystem on
+ block devices when a loop device is mounted and the backing file
+ no longer exists. This typically happens in the precense of
+ overlayroot but may be encountered in other situations.
+
+ This affects the btrfs-tools package prior to the 3.13 release.
+
+ * Backporting the fix from the upstream repository is required to
+ allow Trusty MAAS/Cloud images which use overlayrootfs to create
+ btrfs filesystems in the presence of a loopdevice with a missing
+ backing file.
+
+ * All patches applied are already accepted upstream. Xenial, Artful,
+ and Bionic are not affected.
+
+
+ [Test Case]
+
+ * On a Trusty 14.04 system with a secondary disk (vdb)
+ - apt-get install btrfs-tools
+ - truncate -s 1G testloop.img
+ - losetup /dev/loop0 testloop.img
+ - mkfs.ext4 /dev/loop0
+ - mount /dev/loop0 /mnt
+ - rm testloop.img
+ - mkfs.btrfs --force /dev/vdb
+
+ PASS if mkfs.btrfs returns 0 and /dev/vdb has a btrfs filesystem
+
+ FAIL if mkfs.btrfs returns non-zero and /dev/vdb does not have a
+ btrfs filesystem. mkfs.btrfs returns the error message:
+
+ Error: error checking /dev/vdb mount status
+
+ [Regression Potential]
+
+ * mkfs.btrfs fails to detect that the target device is already mounted
+ and an existing btrfs filesystem is destroyed.
+
+
+ [Original Description]
# lsb_release -rd
Description: Ubuntu 14.04.5 LTS
Release: 14.04
# apt-cache policy btrfs-tools
btrfs-tools:
- Installed: 3.12-1ubuntu0.1
- Candidate: 3.12-1ubuntu0.1
- Version table:
- *** 3.12-1ubuntu0.1 0
- 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
- 100 /var/lib/dpkg/status
- 3.12-1 0
- 500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
+ Installed: 3.12-1ubuntu0.1
+ Candidate: 3.12-1ubuntu0.1
+ Version table:
+ *** 3.12-1ubuntu0.1 0
+ 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
+ 100 /var/lib/dpkg/status
+ 3.12-1 0
+ 500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
# mkfs.btrfs --force /dev/vdd succeeds
- # # mkfs.btrfs --force /dev/vdd
+ # # mkfs.btrfs --force /dev/vdd
Error: error checking /dev/vdd mount status
# strace -f mkfs.btrfs --force /dev/vdd
<snip>
stat("/dev/loop0", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 0), ...}) = 0
lstat("/dev", {st_mode=S_IFDIR|0755, st_size=4180, ...}) = 0
lstat("/dev/loop0", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 0), ...}) = 0
open("/sys/block//loop0/loop/backing_file", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe8bd73c000
read(5, "/root.tmp.img (deleted)\n", 4096) = 24
close(5) = 0
munmap(0x7fe8bd73c000, 4096) = 0
lstat("/dev", {st_mode=S_IFDIR|0755, st_size=4180, ...}) = 0
lstat("/dev/vdd", {st_mode=S_IFBLK|0660, st_rdev=makedev(253, 48), ...}) = 0
lstat("/root.tmp.img (deleted)", 0x7ffeaa3f0bf0) = -1 ENOENT (No such file or directory)
close(4) = 0
munmap(0x7fe8bd73d000, 4096) = 0
close(3) = 0
write(2, "Error: error checking /dev/vdd m"..., 44Error: error checking /dev/vdd mount status
) = 44
exit_group(1) = ?
+++ exited with 1 +++
It appears that mkfs.btrfs doesn't like the loop device, /dev/loop0
which has a deleted backing file.
- root at ubuntu:~# cat /sys/block/loop0/loop/backing_file
+ root at ubuntu:~# cat /sys/block/loop0/loop/backing_file
/root.tmp.img (deleted)
root at ubuntu:~# ls -al /root.tmp.img
ls: cannot access /root.tmp.img: No such file or directory
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: btrfs-tools 3.12-1ubuntu0.1
ProcVersionSignature: Ubuntu 3.13.0-135.184-generic 3.13.11-ckt39
Uname: Linux 3.13.0-135-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.27
Architecture: amd64
Date: Wed Nov 29 02:58:04 2017
ProcEnviron:
- TERM=vt102
- PATH=(custom, no user)
- LANG=en_US.UTF-8
- SHELL=/bin/bash
+ TERM=vt102
+ PATH=(custom, no user)
+ LANG=en_US.UTF-8
+ SHELL=/bin/bash
SourcePackage: btrfs-tools
UpgradeStatus: No upgrade log present (probably fresh install)
--
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1735046
Title:
mkfs.btrfs error checking mount status of loop device backing_file
Status in btrfs-tools package in Ubuntu:
New
Bug description:
SRU Template
[Impact]
* Users may be unable to successfully create a btrfs filesystem on
block devices when a loop device is mounted and the backing file
no longer exists. This typically happens in the precense of
overlayroot but may be encountered in other situations.
This affects the btrfs-tools package prior to the 3.13 release.
* Backporting the fix from the upstream repository is required to
allow Trusty MAAS/Cloud images which use overlayrootfs to create
btrfs filesystems in the presence of a loopdevice with a missing
backing file.
* All patches applied are already accepted upstream. Xenial, Artful,
and Bionic are not affected.
[Test Case]
* On a Trusty 14.04 system with a secondary disk (vdb)
- apt-get install btrfs-tools
- truncate -s 1G testloop.img
- losetup /dev/loop0 testloop.img
- mkfs.ext4 /dev/loop0
- mount /dev/loop0 /mnt
- rm testloop.img
- mkfs.btrfs --force /dev/vdb
PASS if mkfs.btrfs returns 0 and /dev/vdb has a btrfs filesystem
FAIL if mkfs.btrfs returns non-zero and /dev/vdb does not have a
btrfs filesystem. mkfs.btrfs returns the error message:
Error: error checking /dev/vdb mount status
[Regression Potential]
* mkfs.btrfs fails to detect that the target device is already mounted
and an existing btrfs filesystem is destroyed.
[Original Description]
# lsb_release -rd
Description: Ubuntu 14.04.5 LTS
Release: 14.04
# apt-cache policy btrfs-tools
btrfs-tools:
Installed: 3.12-1ubuntu0.1
Candidate: 3.12-1ubuntu0.1
Version table:
*** 3.12-1ubuntu0.1 0
500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
100 /var/lib/dpkg/status
3.12-1 0
500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
# mkfs.btrfs --force /dev/vdd succeeds
# # mkfs.btrfs --force /dev/vdd
Error: error checking /dev/vdd mount status
# strace -f mkfs.btrfs --force /dev/vdd
<snip>
stat("/dev/loop0", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 0), ...}) = 0
lstat("/dev", {st_mode=S_IFDIR|0755, st_size=4180, ...}) = 0
lstat("/dev/loop0", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 0), ...}) = 0
open("/sys/block//loop0/loop/backing_file", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe8bd73c000
read(5, "/root.tmp.img (deleted)\n", 4096) = 24
close(5) = 0
munmap(0x7fe8bd73c000, 4096) = 0
lstat("/dev", {st_mode=S_IFDIR|0755, st_size=4180, ...}) = 0
lstat("/dev/vdd", {st_mode=S_IFBLK|0660, st_rdev=makedev(253, 48), ...}) = 0
lstat("/root.tmp.img (deleted)", 0x7ffeaa3f0bf0) = -1 ENOENT (No such file or directory)
close(4) = 0
munmap(0x7fe8bd73d000, 4096) = 0
close(3) = 0
write(2, "Error: error checking /dev/vdd m"..., 44Error: error checking /dev/vdd mount status
) = 44
exit_group(1) = ?
+++ exited with 1 +++
It appears that mkfs.btrfs doesn't like the loop device, /dev/loop0
which has a deleted backing file.
root at ubuntu:~# cat /sys/block/loop0/loop/backing_file
/root.tmp.img (deleted)
root at ubuntu:~# ls -al /root.tmp.img
ls: cannot access /root.tmp.img: No such file or directory
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: btrfs-tools 3.12-1ubuntu0.1
ProcVersionSignature: Ubuntu 3.13.0-135.184-generic 3.13.11-ckt39
Uname: Linux 3.13.0-135-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.27
Architecture: amd64
Date: Wed Nov 29 02:58:04 2017
ProcEnviron:
TERM=vt102
PATH=(custom, no user)
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: btrfs-tools
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/btrfs-tools/+bug/1735046/+subscriptions
More information about the Ubuntu-sponsors
mailing list