Ensure datasets are not busy when taking a snapshot
This is a very common failure mode for image-backed datasets:
About to: '/usr/testbed/bin/sshtb -n -host c220g5-111012 /usr/local/bin/create-versioned-image METHOD=frisbee SERVER=128.104.222.9 IMAGENAME=praxis-PG0/bench-setup:0 BSNAME=bs IZOPTS=N' as uid 0
c220g5-111012: started image capture for '/.amd_mnt/ops.wisc.cloudlab.us/proj/praxis-PG0/images/bench-setup/bench-setup.ndz.tmp', waiting up to 90 minutes total or 8 minutes idle.
umount: /benchdata: target is busy.
Could not unmount /dev/mapper/emulab-bs!
Could not parse all arguments
FAILED: Returned error code 2 generating image ...
We want to unmount the filesystem to get a consistent snapshot of the filesystem, but the user has a process active on the dataset at that time.
Things to look at:
- attempting to locate all such processes and killing them
- doing a forcible unmount
- shutting down the machine to single-user
- identifying the situation in advance and refusing to snapshot