diff options
author | Samuel Just <sam.just@inktank.com> | 2013-07-30 15:46:22 -0700 |
---|---|---|
committer | Samuel Just <sam.just@inktank.com> | 2013-07-30 15:52:38 -0700 |
commit | 0e125e0e86c920218b97716addf1db89bcd93b0c (patch) | |
tree | d0db167746fff1208175f8425d3f5444019fe5fc | |
parent | 60cbed3fcd15d50cddb2999c2cfb800506453dea (diff) | |
download | ceph-0e125e0e86c920218b97716addf1db89bcd93b0c.tar.gz |
Objecter: set c->session to NULL if acting is empty
Otherwise, we might leave a session attached to the
CommandOp for an down OSD. handle_osd_map will then
delete the session for the down OSD. tick() will then
attempt to follow the invalid pointer to find a
connection over which to send a MPing.
Fixes: #5798
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
-rw-r--r-- | src/osdc/Objecter.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index e07d0626d21..8ec1374ec4f 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -2450,6 +2450,7 @@ int Objecter::recalc_command_target(CommandOp *c) c->session = s; s->command_ops.push_back(&c->session_item); } else { + c->session = NULL; num_homeless_ops++; } return RECALC_OP_TARGET_NEED_RESEND; |