New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

msg/async: fix deleted_conn is out of sync with conns #15645

merged 2 commits into from Jun 14, 2017


None yet
4 participants

yuyuyu101 commented Jun 13, 2017

there is two problems:

  1. connection stuck into infini loop with existing->state == STATE_CLOSED, it's a legacy judgement before implement lazy delete. even so it won't happen because we lookup to get a real existing connection will check deleted_conns. if state is STATE_CLOSED, it must be in deleted_conns.
  2. accept_conns make deleted_conns out of sync with conns. it delete entry in deleted_conns but not in conns, so it cause unexpected result.
ldout(async_msgr->cct, 1) << __func__ << " existing racing replace or mark_down happened while replacing."
if (existing->state == STATE_CLOSED) {
ldout(async_msgr->cct, 1) << __func__ << " existing already closed." << dendl;
existing = NULL;

This comment has been minimized.


asheplyakov Jun 13, 2017

Is it OK to leave existing->lock locked?

This comment has been minimized.


yuyuyu101 Jun 13, 2017


thx!, done

@yuriw yuriw merged commit 6006aff into ceph:master Jun 14, 2017

3 of 4 checks passed

arm64 make check arm64 make check started
Signed-off-by all commits in this PR are signed
Unmodified Submodules submodules for project are unmodified
make check make check succeeded

@yuyuyu101 yuyuyu101 deleted the yuyuyu101:wip-20230 branch Jun 15, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment