stratisd
stratisd copied to clipboard
Pool that enter a FAILURE state never recover
version: Stratisd 2.0.0
It is possible to have a pool enter a failed state by;
- creating a pool
- mounting the MDV manually
- then trying to delete the pool
Since the MDV is busy, due to the MDV mount, the pool can't be deleted. An error message is provided to stratisd, which puts the volume into a failed state. Later on if the MDV is unmounted and the pool should be able to be deleted, but since stratisd's "status" for the pool is failed, no further changes can be made to the pool.
Example:
stratis pool Name Total Physical stratis pool create p1-vdo /dev/mapper/vdo1 stratis pool Name Total Physical p1-vdo 2 PiB / 572.68 MiB / 2.00 PiB sblk|grep mdv └─stratis-1-private-3e58c93f7c3c4b6a9a523c05de81d88b-flex-mdv 253:7 0 16M 0 stratis mount /dev/mapper/stratis-1-private-3e58c93f7c3c4b6a9a523c05de81d88b-flex-mdv /mnt stratis pool destroy p1-vdoExecution failed: stratisd failed to perform the operation that you requested. It returned the following information via the D-Bus: ERROR: low-level ioctl error due to nix error: EBUSY: Device or resource busy. stratis pool Name Total Physical p1-vdo 2 PiB / FAILURE / FAILURE umount /mnt stratis pool destroy p1-vdo Execution failed: stratisd failed to perform the operation that you requested. It returned the following information via the D-Bus: ERROR: low-level ioctl error due to nix error: ENXIO: No such device or address.
Possible workaround: systemctl stop stratisd;systemctl start stratisd stratis pool Name Total Physical p1-vdo 2 PiB / 572.68 MiB / 2.00 PiB stratis pool destroy p1-vdo
@mulkieran @drckeefe I think this is resolved by the RefreshState work. If the issue is corrected, the failure state should be cleared once the state is refreshed.
We should try to reproduce.
I think this is resolved actually with the addition of the refresh command.
Ok. Closing.