[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#857916: linux-image-4.9.0-2-amd64: btrfs modifying wrong mount point data upon new mount



Package: src:linux
Version: 4.9.13-1
Severity: normal

I'm using DRBD to keep a backup of my root filesystem (multiple snapshots 
on remote machine).

Now I wanted to access an old version of a file; so I got me access to the 
right snapshot (again via DRBD), and tried to mount the filesystem.

First I noticed that the actually passed in block device wasn't even used; 
btrfs noticed that a filesystem with the same UUID is already mounted, and 
so "helpfully" just mounted the (*wrong*) block device at the new location.

When I finally realized that, I umounted the new location and tried to use 
"btrfstune" to change the snapshot's UUID, so that I can mount that 
independently.

Much to my surprise "btrfstune" just told me
    <device> is mounted
and after a brief investigation this showed to be true - /proc/mounts now 
showed the _snapshot_ device as being in use for my root filesystem!

I could "fix" that by mounting my root device at the new location:

  [root@cacao:/mnt]$ grep mapper  /proc/self/mounts
  /dev/mapper/hrbg / btrfs rw,nodiratime,relatime,space_cache,subvolid=5,subvol=/ 0 0
  [root@cacao:/mnt]$ mount /dev/mapper/sda2_crypt /mnt/tmp3
  [root@cacao:/mnt]$ grep mapper  /proc/self/mounts
  /dev/mapper/sda2_crypt / btrfs rw,nodiratime,relatime,space_cache,subvolid=5,subvol=/ 0 0
  /dev/mapper/sda2_crypt /mnt/tmp3 btrfs rw,relatime,space_cache,subvolid=5,subvol=/ 0 0


So, 
 *) silently mounting the wrong device at the new location is very bad 
    behaviour; having a message
        Filesystem with that UUID already mounted
    would be a bit better (but not much, I hate the same thing in
    XFS too)
 *) changing the block device of the old location is a bug -- I don't
    believe that the accesses are really done against the new location,
    and if they were, that would be even worse.


Thank you for your attention!


-- Package-specific info:
** Version:
Linux version 4.9.0-2-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170221 (Debian 6.3.0-8) ) #1 SMP Debian 4.9.13-1 (2017-02-27)

** Command line:
BOOT_IMAGE=/vmlinuz-4.9.0-2-amd64 root=UUID=1bfc62e3-f883-42f0-a2aa-3c67ee6f563f ro quiet no_console_suspend=1 noresume cryptopts=source=/dev/drbd9,target=sda2_crypt,discard,rootdev cgroup_enable=memory swapaccount=1

** Tainted: POE (12289)
 * Proprietary module has been loaded.
    broadcom-sta == wl
 * Out-of-tree module has been loaded.
    drbd 
 * Unsigned module has been loaded.
    drbd 

** Kernel log:
Unable to read kernel log; any relevant messages should be attached

** Loaded modules:
hmac
hid_cherry
hid_generic
nfnetlink_queue
wl(POE)
xt_CHECKSUM
iptable_mangle
ipt_MASQUERADE
nf_nat_masquerade_ipv4
tun
bridge
stp
llc
xt_nat
iptable_nat
nf_nat_ipv4
nf_nat
nf_conntrack_ipv4
nf_defrag_ipv4
xt_conntrack
nf_conntrack
xt_NFLOG
nfnetlink_log
nfnetlink
ipt_REJECT
nf_reject_ipv4
xt_comment
xt_tcpudp
ebtable_filter
ebtables
ip6table_filter
ip6_tables
iptable_filter
cpufreq_userspace
cpufreq_powersave
cpufreq_conservative
cmac
bnep
uinput
edac_mce_amd
edac_core
kvm_amd
kvm
irqbypass
joydev
pcspkr
binfmt_misc
evdev
nls_ascii
btusb
btrtl
btbcm
uvcvideo
videobuf2_vmalloc
videobuf2_memops
btintel
nls_cp437
videobuf2_v4l2
bluetooth
videobuf2_core
videodev
vfat
media
serio_raw
fat
efi_pstore
efivars
k10temp
amdkfd
snd_hda_codec_conexant
snd_hda_codec_generic
radeon
snd_hda_codec_hdmi
snd_hda_intel
snd_hda_codec
ttm
snd_hda_core
snd_hwdep
rtsx_pci_ms
snd_pcm_oss
snd_mixer_oss
memstick
drm_kms_helper
cfg80211
snd_pcm
thinkpad_acpi
snd_timer
drm
nvram
snd
sg
soundcore
i2c_algo_bit
rfkill
shpchp
ac
wmi
battery
acpi_cpufreq
tpm_tis
tpm_tis_core
video
button
tpm
sbs
sbshc
brd
nfsd
auth_rpcgss
nfs_acl
lockd
grace
loop
parport_pc
sunrpc
ppdev
lp
parport
efivarfs
ip_tables
x_tables
autofs4
algif_skcipher
af_alg
raid10
raid456
async_raid6_recov
async_memcpy
async_pq
async_xor
async_tx
raid1
raid0
multipath
linear
lru_cache
md_mod
dm_crypt
dm_mod
uhci_hcd
usbhid
hid
ext4
crc16
jbd2
fscrypto
ecb
mbcache
drbd(OE)
libcrc32c
btrfs
crc32c_generic
xor
mmc_block
raid6_pq
sr_mod
cdrom
sd_mod
ohci_pci
crct10dif_pclmul
crc32_pclmul
crc32c_intel
rtsx_pci_sdmmc
mmc_core
ghash_clmulni_intel
aesni_intel
aes_x86_64
lrw
gf128mul
glue_helper
ablk_helper
cryptd
psmouse
ahci
libahci
ohci_hcd
libata
ehci_pci
ehci_hcd
xhci_pci
xhci_hcd
scsi_mod
usbcore
i2c_piix4
rtsx_pci
r8169
mfd_core
usb_common
mii
fjes


-- System Information:
Debian Release: 9.0
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_AT.UTF-8, LC_CTYPE=de_AT.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages linux-image-4.9.0-2-amd64 depends on:
ii  initramfs-tools [linux-initramfs-tool]  0.127
ii  kmod                                    23-2
ii  linux-base                              4.5

Versions of packages linux-image-4.9.0-2-amd64 recommends:
ii  firmware-linux-free  3.4
ii  irqbalance           1.1.0-2.3

Versions of packages linux-image-4.9.0-2-amd64 suggests:
pn  debian-kernel-handbook  <none>
ii  extlinux                3:6.03+dfsg-14.1
ii  grub-efi-amd64          2.02~beta3-5
pn  linux-doc-4.9           <none>

Versions of packages linux-image-4.9.0-2-amd64 is related to:
ii  firmware-amd-graphics     20161130-2
pn  firmware-atheros          <none>
pn  firmware-bnx2             <none>
ii  firmware-bnx2x            20161130-2
ii  firmware-brcm80211        20161130-2
pn  firmware-cavium           <none>
pn  firmware-intel-sound      <none>
pn  firmware-intelwimax       <none>
pn  firmware-ipw2x00          <none>
pn  firmware-ivtv             <none>
pn  firmware-iwlwifi          <none>
pn  firmware-libertas         <none>
ii  firmware-linux-nonfree    20161130-2
ii  firmware-misc-nonfree     20161130-2
pn  firmware-myricom          <none>
pn  firmware-netxen           <none>
pn  firmware-qlogic           <none>
ii  firmware-realtek          20161130-2
pn  firmware-samsung          <none>
pn  firmware-siano            <none>
pn  firmware-ti-connectivity  <none>
pn  xen-hypervisor            <none>

-- no debconf information


Reply to: