zpool export mpu1pool cannot export 'mpu1pool': pool is busy
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
zfs-linux (Ubuntu) |
Won't Fix
|
Medium
|
Colin Ian King |
Bug Description
$ lsb_release -rd
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Linux 4.4.0-64-generic
$ apt-cache policy zfsutils-linux
zfsutils-linux:
Installed: 0.6.5.6-0ubuntu15
# modinfo zfs |head
filename: /lib/modules/
version: 0.6.5.6-0ubuntu15
I was not able to unmount a ZFS pool:
# zpool export mpu1pool
cannot export 'mpu1pool': pool is busy
The filesystems were unmounted and there was nothing that would be blocking them FS.
Neither sync, echo 3 > /proc/sys/
The only way worked to export a ZFS pool was to turn off the SWAP:
# lsof -Pn |grep -i mpu1
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
# free -mh
total used free shared buff/cache available
Mem: 7.7G 5.1G 502M 837M 2.1G 1.0G
Swap: 8.0G 428M 7.6G
# swapoff -a
# free -mh
total used free shared buff/cache available
Mem: 7.7G 1.5G 4.8G 366M 1.4G 5.2G
Swap: 0B 0B 0B
# zpool export mpu1pool
# echo $?
0
# swapon -a
It is not obvious that the SWAP has to be freed before one can export ZFS pool.
Would it be possible to improve this situation?
Kind regards,
Andrey Arapov
Changed in zfs-linux (Ubuntu): | |
status: | New → In Progress |
importance: | Undecided → Medium |
assignee: | nobody → Colin Ian King (colin-king) |
Internally zpool export will call unshare and umount, so a "pool is busy" indicates that process(es) has/have one or more files open and so this operation fails.
One can check for these processes using either:
lsof -Pn
or
fuser -vm /poolname
(where poolname is the name of your pool)
and it's worth checking the status of the pool using:
zpool status -v