Description of problem:
The VDO code that implements the sysfs nodes that read statistics (i.e. /sys/kvdo/vdo0/statistics/*) all hold a spin lock and call a method that gathers the statistics. This gathering method always sends a message to another thread and waits for the thread to send back a reply, and the waiting always sleeps. But sleeping is not allowed while holding a spin lock.
Version-Release number of selected component (if applicable):
always takes spin lock and sleeps, but it takes multiple simultaneous calls to cause very bad effects.
Steps to Reproduce:
Unsure - this was discovered in the source code code
It is possible that throwing a lot of processes doing "/sys/kvdo/vdo0/statistics/*" simultaneously would show a problem. But it is most reasonable to do the standard sanity testing after this is fixed.
The simplest fix is to take out the spin lock and replace it with a mutex.
The bug was merged back to version 220.127.116.11.
Sanity testing found no regressions on:
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.