Bug 2109047 - vdo deadlock after suspend/resume [NEEDINFO]
Summary: vdo deadlock after suspend/resume
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: kmod-kvdo
Version: 8.7
Hardware: x86_64
OS: Linux
Target Milestone: rc
: ---
Assignee: Ken Raeburn
QA Contact: Filip Suba
Kristina Slaveykova
: 2119143 (view as bug list)
Depends On: 2064802 2119143
TreeView+ depends on / blocked
Reported: 2022-07-20 10:32 UTC by Ken Raeburn
Modified: 2023-03-22 15:35 UTC (History)
13 users (show)

Fixed In Version: kmod-kvdo-
Doc Type: Bug Fix
Doc Text:
.VDO driver bug no longer causing device freezes through journal blocks Previously, a bug in the VDO driver caused the system to mark some journal blocks as waiting for metadata updates. This problem was triggered when increasing the size of the VDO pool or the logical volume on top of it, or when using the `pvmove` and `lvchange` operations on LVM tools managed VDO devices. The bug was caused by incomplete resets that left some journal pages unavailable for use, and an incorrect notion of how many slots in the recovery journal were available to be filled. As a result, the device would freeze. This issue has now been fixed with the latest version of the kernel modules for the virtual data optimizer *kmod-kvdo-*. Currently, all incomplete metadata blocks are saved in each section of the code in phases, while also updating in-memory data structures and resetting state on resume if needed. With this fix, users should no longer experience device freezes due to this issue.
Clone Of: 2064802
Last Closed:
Type: Bug
Target Upstream Version:
kslaveyk: needinfo? (awalsh)

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-128410 0 None None None 2022-07-20 10:36:58 UTC

Comment 6 corwin 2022-08-23 17:59:19 UTC
*** Bug 2119143 has been marked as a duplicate of this bug. ***

Comment 9 Ken Raeburn 2022-08-27 04:41:29 UTC
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.

Comment 20 Filip Suba 2022-11-07 08:21:10 UTC
Verified with kmod-kvdo-

Note You need to log in before you can comment on or make changes to this bug.