qemu-iotests: Test removing a throttle group member with a pending timer
commitef7a6a3c2a7725b169d054aa7487f9738bd6c4a6
authorAlberto Garcia <berto@igalia.com>
Thu, 2 Aug 2018 14:50:23 +0000 (2 17:50 +0300)
committerKevin Wolf <kwolf@redhat.com>
Wed, 15 Aug 2018 10:50:39 +0000 (15 12:50 +0200)
tree5a753c244aab646df4da696fe32c75d3a0b86126
parentf62492bb8d1ea7f7e156ffbdf411de46107072c5
qemu-iotests: Test removing a throttle group member with a pending timer

A throttle group can have several members, and each one of them can
have several pending requests in the queue.

The requests are processed in a round-robin fashion, so the algorithm
decides the drive that is going to run the next request and sets a
timer in it. Once the timer fires and the throttled request is run
then the next drive from the group is selected and a new timer is set.

If the user tried to remove a drive from a group and that drive had a
timer set then the code was not taking care of setting up a new timer
in one of the remaining members of the group, freezing their I/O.

This problem was fixed in 6fccbb475bc6effc313ee9481726a1748b6dae57,
and this patch adds a new test case that reproduces this exact
scenario.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
tests/qemu-iotests/093
tests/qemu-iotests/093.out