-
Bug
-
Resolution: Duplicate
-
Normal
-
rhel-9.4
-
None
-
None
-
Moderate
-
sst_virtualization_storage
-
ssg_virtualization
-
5
-
False
-
-
None
-
Red Hat Enterprise Linux
-
None
-
None
-
None
-
-
All
-
None
What were you trying to do that didn't work?
See the following upstream qemu thread about a scenario where serving multiple NBD exports over TLS can cause qemu to corrupt its list of pending coroutines:
https://lists.gnu.org/archive/html/qemu-devel/2024-03/msg06825.html
I am not sure how easy it is to trip the issue without multiple exports, although I am confident that the issue can only trip when TLS is requested. However, libvirt uses NBD with TLS for disk migration, so it is probably that migrating a guest with many disks would set up such a scenario.
Please provide the package NVR for which bug is seen:
qemu-kvm-8.2.0-1.el9
How reproducible:
Difficult to reproduce without gdb or adding assertions to the qemu source code
Steps to reproduce
- export multiple disks over NBD with TLS
- connect clients to those disks quickly enough that the network load makes it more likely that the TLS handshake gets interrupted, triggering the code path where qemu as NBD server attempts to spawn a main loop and call poll() while still inside the coroutine handling the upgrade to TLS based on the client's NBD_OPT_STARTTLS command
Expected results
coroutines should never poll; the result of pausing the coroutine led to corruption of the list of pending coroutines
Actual results
since qemu is already in coroutine context when serving an NBD connection, any interruption in the TLS upgrade should resume that same coroutine rather than spawn a separate poll loop. Upstream patch proposed:
https://lists.gnu.org/archive/html/qemu-devel/2024-04/msg00886.html
- duplicates
-
RHEL-33440 Qemu hang when quit dst vm after storage migration(nbd+tls)
- Release Pending
-
RHEL-40959 Qemu hang when quit dst vm after storage migration(nbd+tls)
- Release Pending