kern/157728: [zfs] zfs (v28) incremental receive may leave
behind temporary clones
Luke Marsden
luke-lists at hybrid-logic.co.uk
Mon Aug 22 11:02:16 UTC 2011
On Mon, 2011-08-22 at 10:15 +0000, mm at FreeBSD.org wrote:
> Synopsis: [zfs] zfs (v28) incremental receive may leave behind temporary clones
>
> State-Changed-From-To: open->closed
> State-Changed-By: mm
> State-Changed-When: Mon Aug 22 10:15:16 UTC 2011
> State-Changed-Why:
> Resolved. Thanks!
Brilliant, thanks for fixing this!
Do you have any thoughts about what might have caused the other issue I
reported, the deadlock? From my email of the 15th July
(mfsbsd-se-8.2-zfsv28-amd64 19.06.2011):
The biggest issue was a DEADLOCK which occurs quite reliably with a
given sequence of events in short succession, on a chroot filesystem
with many snapshots and a MySQL socket and nullfs mounts inside it:
1. Force unmount the nullfs mounts which are mounted on top of it
2. Close the MySQL socket in /tmp
3. Force unmount the actual filesystem (even if there are open FDs)
4. 'zfs rename' the filesystem into our 'trash' filesystem (which I
understand consists of a clone, promote and destroy)
The entire ZFS subsystem then hangs on any new I/O.
Here is a procstat of the zfs rename process which hangs after the force
unmount:
25674 100871 zfs initial thread mi_switch+0x176
sleepq_wait+0x42 _cv_wait+0x129 txg_wait_synced+0x85
dsl_sync_task_group_wait+0x128 dsl_sync_task_do+0x54 dsl_dir_rename+0x8f
dsl_dataset_rename+0x272 zfsdev_ioctl+0xe6 devfs_ioctl_f+0x7b kern_ioctl
+0x102 ioctl+0xfd syscallenter+0x1e5 syscall+0x4b Xfast_syscall+0xe2
Unfortunately it's not easy to reproduce, it only seems to happen in an
environment which is under load with a lot of datasets and a lot of zfs
operations happening concurrently on other datasets. I spent two days
trying to reproduce it in self-contained test environments but had no
luck, so I'm now reporting it anyway.
--
Best Regards,
Luke Marsden
CTO, Hybrid Logic Ltd.
Web: http://www.hybrid-cluster.com/
Hybrid Web Cluster - cloud web hosting
Mobile: +1-415-449-1165 (US) / +447791750420 (UK)
More information about the freebsd-fs
mailing list