]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mon: remember source client address in routed requests
authorHenry C Chang <henry_c_chang@tcloudcomputing.com>
Thu, 11 Nov 2010 03:40:39 +0000 (11:40 +0800)
committerSage Weil <sage@newdream.net>
Fri, 23 Sep 2011 19:55:55 +0000 (12:55 -0700)
commite0be65cf0ec5115e6db30c19c93a5d86e49171d5
tree388ab794fbb52d16402218be9b750fbb3ae532b8
parent878fedbbac7e72fdc1394ad1db1677ec6dbcd365
mon: remember source client address in routed requests

when we resend_routed_requests, the source client address is lost.
This may cause problems. For example, if we resend an mds beacon
(boot) to a new monitor leader, the new mdsmap will contain a new
mds entry without IP address.

To reproduce this bug:
1. deploy a cluster with 3 mons.
2. let active mds send beacon to mon0; standby mds send becaon to mon2
3. gdb attach to mon2 to make it unresponsive and make standby mds laggy.
4. gdb attach to mon0 to make it unresponsive and make active mds laggy.
5. detach mon2, then the standby mds will become active.
6. ceph mds dump -o - shows the active mds address is :/0

Signed-off-by: Henry C Chang <henry_c_chang@tcloudcomputing.com>
Signed-off-by: Sage Weil <sage@newdream.net>
src/mon/Monitor.cc
src/mon/Monitor.h