← Back to team overview

kernel-packages team mailing list archive

[Bug 1560869] Re: Concurrent zfs create and rename operations can lock a zpool completely

 

Another note: this can also be triggered only with rename operations on
zvols:

$ sudo zfs create -V 4096k pool1/zfsrename 1
$ sudo zfs create -V 4096k pool1/zfsrename 3

and then in two shells in parallel:

$ while : ; do echo "RENAME" `date`; sudo zfs rename pool1/testrename3
pool1/testrename4; sudo zfs rename pool1/testrename4 pool1/testrename3;
done

$ while : ; do echo "RENAME" `date`; sudo zfs rename pool1/testrename1
pool1/testrename2; sudo zfs rename pool1/testrename2 pool1/testrename1;
done

takes a bit longer than with the create rename destroy script from
above, but triggers after 10-15 seconds in the same test VM:

user@test:~$ sudo cat /proc/6338/stack
[<ffffffffc02abc41>] spa_open_common+0x61/0x480 [zfs]
[<ffffffffc02ac083>] spa_open+0x13/0x20 [zfs]
[<ffffffffc02e2112>] pool_status_check.part.24+0x32/0xa0 [zfs]
[<ffffffffc02e2509>] zfsdev_ioctl+0x389/0x4b0 [zfs]
[<ffffffff8121e7df>] do_vfs_ioctl+0x29f/0x490
[<ffffffff8121ea49>] SyS_ioctl+0x79/0x90
[<ffffffff81821ff2>] entry_SYSCALL_64_fastpath+0x16/0x71
[<ffffffffffffffff>] 0xffffffffffffffff
user@test:~$ sudo cat /proc/6333/stack
[<ffffffffc01adc49>] cv_wait_common+0x109/0x140 [spl]
[<ffffffffc01adc95>] __cv_wait+0x15/0x20 [spl]
[<ffffffffc02ba225>] txg_wait_synced+0xe5/0x130 [zfs]
[<ffffffffc0295ca9>] dsl_sync_task+0x179/0x260 [zfs]
[<ffffffffc028b53b>] dsl_dir_rename+0x5b/0x80 [zfs]
[<ffffffffc02de13d>] zfs_ioc_rename+0x10d/0x120 [zfs]
[<ffffffffc02e25a3>] zfsdev_ioctl+0x423/0x4b0 [zfs]
[<ffffffff8121e7df>] do_vfs_ioctl+0x29f/0x490
[<ffffffff8121ea49>] SyS_ioctl+0x79/0x90
[<ffffffff81821ff2>] entry_SYSCALL_64_fastpath+0x16/0x71
[<ffffffffffffffff>] 0xffffffffffffffff


** Attachment added: "ps faxl output"
   https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1560869/+attachment/4608435/+files/psfaxl.log

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1560869

Title:
  Concurrent zfs create and rename operations can lock a zpool
  completely

Status in linux package in Ubuntu:
  Incomplete
Status in zfs-linux package in Ubuntu:
  New

Bug description:
  When doing "zfs create -V" and "zfs rename" operations on the same
  zpool in parallel, there is a high chance for a deadlock leading to a
  complete hang of the zpool in question (i.e., all further zfs
  operations hang indefinitely).

  Attached you find a simple perl script that should trigger the bug
  (the pool variable needs to be set to your pool name), if run in two
  shells at the same time:

  $ for i in `seq 1 100`; do sudo ./zfsrenamebug.pl "A$i"; done

  $ for i in `seq 1 100`; do sudo ./zfsrenamebug.pl "B$i"; done

  Reported upstream in https://github.com/zfsonlinux/zfs/issues/4404 and apparently fixed with the linked commits.
  --- 
  ApportVersion: 2.20-0ubuntu3
  Architecture: amd64
  AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
  CurrentDesktop: Unity
  DistroRelease: Ubuntu 16.04
  HibernationDevice: RESUME=UUID=41b79831-ff2c-4d62-8d09-0fd00a3fafad
  InstallationDate: Installed on 2016-03-18 (4 days ago)
  InstallationMedia: Ubuntu 16.04 LTS "Xenial Xerus" - Alpha amd64 (20160307)
  IwConfig:
   ens18     no wireless extensions.
   
   lo        no wireless extensions.
  Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  MachineType: QEMU Standard PC (i440FX + PIIX, 1996)
  NonfreeKernelModules: zfs zunicode zcommon znvpair zavl
  Package: zfs-linux
  ProcFB: 0 qxldrmfb
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-15-generic root=UUID=ff5bf1a3-8ced-46a8-9e2e-e3e7d0e522c0 ro quiet splash vt.handoff=7
  ProcVersionSignature: Ubuntu 4.4.0-15.31-generic 4.4.6
  RelatedPackageVersions:
   linux-restricted-modules-4.4.0-15-generic N/A
   linux-backports-modules-4.4.0-15-generic  N/A
   linux-firmware                            1.157
  RfKill:
   
  Tags:  xenial
  Uname: Linux 4.4.0-15-generic x86_64
  UpgradeStatus: No upgrade log present (probably fresh install)
  UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
  _MarkForUpload: True
  dmi.bios.date: 04/01/2014
  dmi.bios.vendor: SeaBIOS
  dmi.bios.version: rel-1.8.2-0-g33fbe13 by qemu-project.org
  dmi.chassis.type: 1
  dmi.chassis.vendor: QEMU
  dmi.chassis.version: pc-i440fx-2.5
  dmi.modalias: dmi:bvnSeaBIOS:bvrrel-1.8.2-0-g33fbe13byqemu-project.org:bd04/01/2014:svnQEMU:pnStandardPC(i440FX+PIIX,1996):pvrpc-i440fx-2.5:cvnQEMU:ct1:cvrpc-i440fx-2.5:
  dmi.product.name: Standard PC (i440FX + PIIX, 1996)
  dmi.product.version: pc-i440fx-2.5
  dmi.sys.vendor: QEMU

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1560869/+subscriptions