On 03/29/2014 03:39 PM, arei.gong...@huawei.com wrote:
From: Mo Yuxiang <moyuxi...@huawei.com>

If the networking break or there's something wrong with rdma
device(ib0 with no IP) during rdma migration, the main_loop of
qemu will be blocked in rdma_destroy_id. I add rdma_ack_cm_event
to fix this bug.

Signed-off-by: Mo Yuxiang <moyuxi...@huawei.com>
Signed-off-by: Gonglei <arei.gong...@huawei.com>
---
  migration-rdma.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/migration-rdma.c b/migration-rdma.c
index eeb4302..f60749b 100644
--- a/migration-rdma.c
+++ b/migration-rdma.c
@@ -949,6 +949,7 @@ route:
          ERROR(errp, "result not equal to event_addr_resolved %s",
                  rdma_event_str(cm_event->event));
          perror("rdma_resolve_addr");
+        rdma_ack_cm_event(cm_event);
          ret = -EINVAL;
          goto err_resolve_get_addr;
      }

Reviewed-by: Michael R. Hines <mrhi...@us.ibm.com>

Good catch. =) That's an obvious bug. It looks like I need
to do a much better job of "kill -9" inside the regression
testing scripts - probably i should try killing the migration
prematurely at different periods just to be sure there are
no more places where the connection state is not getting
cleaned up......

- Michael



Reply via email to