|Summary:||migration/RDMA: Race condition|
|Product:||Red Hat Enterprise Linux 7||Reporter:||Dr. David Alan Gilbert <dgilbert>|
|Component:||qemu-kvm-rhev||Assignee:||Dr. David Alan Gilbert <dgilbert>|
|Status:||CLOSED ERRATA||QA Contact:||xianwang <xianwang>|
|Version:||7.3||CC:||chayang, dgilbert, juzhang, knoel, michen, mrezanin, pezhang, qzhang, virt-maint, xfu, xianwang|
|Fixed In Version:||qemu-kvm-rhev-2.10.0-1.el7||Doc Type:||If docs needed, set a value|
|Doc Text:||Story Points:||---|
|:||1475751 (view as bug list)||Environment:|
|Last Closed:||2018-04-11 00:09:32 UTC||Type:||Bug|
|oVirt Team:||---||RHEL 7.3 requirements from Atomic Host:|
|Bug Depends On:|
Description Dr. David Alan Gilbert 2015-11-24 18:04:27 UTC
Description of problem: There's a race condition in RDMA startup, triggerable by adding a ~2ms usleep before the post_recv_control(rdma, RDMA_WRID_READY) near the end of qemu_rdma_connect Version-Release number of selected component (if applicable): tested on 2.5-rc upstream How reproducible: 100%ish Steps to Reproduce: 1. 2. 3. Actual results: ibv_poll_cq wc.status=13 RNR retry counter exceeded! This is on the poll waiting for data in qemu_rdma_get_buffer Expected results: No error Additional info: I think this is because we're doing an rdma_post_send_control and sending a WRID_SEND_CONTROL dest->source before the source has post_recv_control - there needs to be some interlock there to ensure it happens in the right order.
Comment 1 Dr. David Alan Gilbert 2017-06-20 14:35:21 UTC
possibly the race we're hitting on rxe?
Comment 2 Dr. David Alan Gilbert 2017-06-30 16:22:47 UTC
Not the race we're hitting on rxe. Posted fix for this one upstream: migration/rdma: Fix race on source
Comment 3 Dr. David Alan Gilbert 2017-07-19 14:38:06 UTC
Merged upstream: 9cf2bab2edca1e651eef migration/rdma: Fix race on source 3a0f2ceaedcf70ff79b6 migration: Close file on failed migration load 0b3c15f09715acd78063 migration/rdma: fix qemu_rdma_block_for_wrid error paths 9c98cfbe72b21d9d84b9 migration/rdma: Allow cancelling while waiting for wrid 482a33c53cbc9d2b0c47 migration/rdma: Safely convert control types 32bce196344772df8d68 migration/rdma: Send error during cancelling (Note if we backport this to a 2.9 world we don't want 'Close file on failed')
Comment 9 xianwang 2017-12-04 02:04:31 UTC
Hi, Dave, I am confused about how to verify this bug, is this a test only bug? it just needs to test common function of rdma migration on P8 and x86? or if not, could you give me some guide to verify this bug? thanks
Comment 10 Dr. David Alan Gilbert 2017-12-04 14:38:00 UTC
(In reply to xianwang from comment #9) > Hi, Dave, > I am confused about how to verify this bug, is this a test only bug? it just > needs to test common function of rdma migration on P8 and x86? or if not, > could you give me some guide to verify this bug? thanks It's a race condition that's very difficult to trigger in practice; so if you just check that RDMA migration is still working OK then that's fine as a test.
Comment 12 xianwang 2017-12-27 02:13:12 UTC
So, I think this bug is fixed.
Comment 14 errata-xmlrpc 2018-04-11 00:09:32 UTC
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. https://access.redhat.com/errata/RHSA-2018:1104