Skip to content

send unexpected operation may never finished #791

@wangdi1

Description

@wangdi1

In some cases, send unexpected may never finished, considering the following case

  1. post tag recv (rx_1).
  2. send msg failed, then post error cq1,
  3. In the mean time, post tag recv might also be cancelled for some reasons, so tag recv is removed, and post another error cq2.
  4. cq1 is processed, which will try to cancel the post tag recv(hg_core_send_input_cb()), then mark the handle as canceled, since cq2 is not processed. (complete_count(1) < expect_count(2)), so the complete upcall will not be called (hg_core_complete_op())
  5. then cq2 is processed, though the handle has been marked as canceled, so nothing will happen.
    Then the operation will never be finished. (edited)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions