summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-07-30 15:46:22 -0700
committerSamuel Just <sam.just@inktank.com>2013-07-30 15:52:38 -0700
commit0e125e0e86c920218b97716addf1db89bcd93b0c (patch)
treed0db167746fff1208175f8425d3f5444019fe5fc
parent60cbed3fcd15d50cddb2999c2cfb800506453dea (diff)
downloadceph-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.cc1
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;