OSDN Git Service

libceph: initialize ack_stamp to avoid unnecessary connection reset
authorJim Schutt <jaschut@sandia.gov>
Fri, 16 Sep 2011 14:27:31 +0000 (08:27 -0600)
committerSage Weil <sage@newdream.net>
Fri, 16 Sep 2011 16:16:22 +0000 (09:16 -0700)
commitc0d5f9db1c7d1b8a9e2f217706e8ea233bac2754
tree1962a9bbd284e32a70486b8cc5a0babd2c7dc131
parentaca420bc51f48b0701963ba3a6234442a0cabebd
libceph: initialize ack_stamp to avoid unnecessary connection reset

Commit 4cf9d544631c recorded when an outgoing ceph message was ACKed,
in order to avoid unnecessary connection resets when an OSD is busy.

However, ack_stamp is uninitialized, so there is a window between
when the message is sent and when it is ACKed in which handle_timeout()
interprets the unitialized value as an expired timeout, and resets
the connection unnecessarily.

Close the window by initializing ack_stamp.

Signed-off-by: Jim Schutt <jaschut@sandia.gov>
Signed-off-by: Sage Weil <sage@newdream.net>
net/ceph/messenger.c