*** Bug 2119143 has been marked as a duplicate of this bug. ***
The RHEL9 version of this problem is about managing locking of in-memory data structures, and so far the RHEL8 version appears to follow suit. As a workaround, it should be possible to avoid the problem by restarting the VDO device immediately (i.e., with as few write operations as possible) after operations that involve suspend/resume cycles for the VDO device.
When using the “vdo” script in RHEL 8, these operations would be grow logical, grow physical, and change write policy. Shut the device down completely and then start it again (e.g., “vdo stop/start …”).
Under LVM, resizing the logical volume using the VDO pool or adding physical storage *may* cause a resize of the VDO device. Unless we want to tell people to check the kernel logs, the simplest advice is to always stop and restart (“lvchange -an/-ay …”) the VDO pool device (or the logical volume on top of it) afterwards. There might also be other, generic LVM operations that could suspend and resume the VDO pool but aren’t specific to VDO; I’m not sure about that.
Verified with kmod-kvdo-22.214.171.124-87.el8.