Commit Graph

93280 Commits

Author SHA1 Message Date
Sage Weil
b1aec88c9f vstart.sh: put mon addrs in mon_host, not 'mon addr'
Notably, mon addr won't take an addrvec, while everything else will.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
d151ece3af msg/async: better debug around conn map lookups and updates
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
395947ae40 mon/MonClient: dump initial monmap at debug level 10
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
b92be2ca9b qa/standalone/osd/osd-fast-mark-down: use v1 addr w/ simplemessenger
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
a19b8e5b14 qa/tasks/ceph: set initial monmap features with using addrvec addrs
The --add option will only infer a bare IP to include a v2 addr if the
NAUTILUS feature is there, and that isn't normally present on a freshly
generate monmap.  Add it if we are doing addrvecs!

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
a274e772f2 monmaptool: add --enable-all-features option
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
241d402d7c qa/tasks/ceph: only use monmaptool --addv if addr has [,:v]
Otherwise, we want the --add path, which has the logic to infer ports,
v2+v1, etc.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
ac2430a43d qa/tasks/ceph_manager: make get_mon_status use mon addr
We don't have the 'mon addr' config property any more.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
545df766be qa/tasks/ceph: keep mon addrs in ctx namespace
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
27b7867d83 mon/OSDMonitor: log all osd addrs on boot
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
a1cebd00a9 msg/simple: behave when v2 and v1 addrs are present at target
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
609c6d76bc mon/MonClient: warn if global_id changes
Shouldn't happen!

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
50f5e328d7 msg/Connection: add warning/note on get_peer_global_id
This field isn't populated for loopback connections because the msgr
doesn't have any insight into what global_id its user has.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
d64cac170e mds/MDSDaemon: clean up handle_mds_map debug output a bit
The old wording was misleading!

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
d980907fc4 qa/suites/rados/upgrade: debug mds
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
9e63e63468 mds/MDSRank: improve is_stale_message to handle addrvecs
If we get a connection on a loopback from ourselves, get_source_addrs()
will have everything we bound to, but the mdsmap may only have the v1
address.  Avoid the addrvec comparison by instead comparing the
ConnectionRefs.

NOTE: this implementation is a stopgap.  We should really maintain a map
of ConnectionRefs for the current up set and compare the ConnectionRefs
directly instead of comparing addr(vecs).

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
76ccf140ed msg/async: make loopback detect when sending to one of our many addrs
Drop the assert just because it's inefficient and not necessary.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
68913080b5 qa/suites/rados/upgrade: no aggressive pg num changes
We now run with mixed mons and old mgrs, so this won't work.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
0a67e02c14 mon/OSDMonitor: require nautilus mons for require_osd_release=nautilus
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
deb92c9d89 mon/OSDMonitor: require mimic mons for require_osd_release=mimic
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
576b6a77f1 qa/suites/rados/thrash-old-clients: use legacy addr syntax in ceph.conf
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
103c0238d4 msg/async: preserve peer features when replacing a connection
The features are now stored in the protocol implementation.  When we replace
an existing connection, copy those features so that our connect_msg_reply
calculates the correct features for the session.

This fixes an issue where a 3-mon cluster, after upgrading the two followers
but not the leader, was unable to include the (luminous) leader in the
quorum because it was seeing missing features in the connect reply, because
the new mons were replacing an old instance of the connection and weren't
copying the features, and that old instance had connect_msg.features == 0.

Add some debug lines that helped (finally) identify the problem.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
1ab352dd31 qa/tasks/ceph.py: move methods from teuthology.git into ceph.py directly; support mon bind * options
Having these live in teuthology.git is silly, since they are only consumed
by the ceph task, and it is hard to revise the behavior.

Revise the behavior by adding mon_bind_* options.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
572311b614 mon/MonMap: adjust build_initial behavior for mkfs vs probe
For the mkfs case, interpret an ambiguous port as a v2 address.  For probe,
try both.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
5992a61c2c mon/MonMap: improve ambiguous addr behavior
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
b1493f0d9a qa/suites/rados/upgrade: spread mons a bit
This will mean 2/3 mons have default ports.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
fbdc1358e6 qa/rados/thrash-old-clients: keep mons on separate hosts
This ensures the mons can use default ports, ceph.conf won't have v1: or
v2: prefixes, and old clients will be happy.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
7559a47f5b qa/standalone/mon/misc.sh: tweak test to be more robust
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
2f786f3299 qa/tasks/mon_seesaw: expect v1/v2 prefix in addr
Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
55a9c7522f osd/OSDMap: fix is_blacklisted() check to assume type ANY
Note that this still does a copy of the addr struct (as it did before).
This could be more efficient...

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:31 -06:00
Sage Weil
0610e56265 mon/OSDMonitor: use ANY addr type for blacklisting
Client addresses are untyped in that they can connect to v1 or v2 server
endpoints, so blacklist them as TYPE_ANY.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-01-03 11:17:20 -06:00
Sage Weil
5a404f9e4b mon/msg_types: TYPE_V1ORV2 -> TYPE_ANY
..and allow us to parse it.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-22 15:53:13 -06:00
Sage Weil
b84b8c9c66 qa/workunits/cephtool: fix blacklist test
Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
0692d06979 qa/suites/upgrade: install old version with only v1 addrs
v1+v2 support is new in nautilus.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
40a7dfbb1f common/options: by default, bind to both msgr v1 and v2 addresses
This will be the case for some time, until v1 clients are fully phased out.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
9f66edbd5e vstart.sh: add --msgr1, --msgr2, --msgr21 options
..and clean up the monmap IP generation.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
7490db6dd1 msg/async/ProtocolV2: be flexible with server identity check
Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
35d4283106 msg/msg_types: fix entity_addrvec_t::parse() with null end arg
Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
6429537bd7 qa/suites/rados/basic/msgr: no msgr2 addrs in initial monmaps
Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
de9b77cd38 qa/tasks/ceph: add 'mon_bind_addrvec' and 'mon_bind_msgr2' options
- Sometimes we don't want to use v2 addrs
- Sometimes we don't want addrvecs at all (e.g., upgrades)

Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
7ff8fc7397 monmaptool: add --addv argument to pass in addrvec directly
Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
a58fcf9e0f qa/suites/rados/basic/msgr: do not use msgr2 with simplemessenger
Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
9a5aa423e0 qa/suites/rados/basic/msgr: async is not experimental
Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
a56a7fb695 messages/MOSDBoot: fix compat with pre-nautilus
We can't make an addr -> addrvec transition without a compat encoding,
unfortunately (I screwed this one up back when then ADDR2 feature was
introduced).

Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
d16f6e4654 mon/MonMap: allow v1 or v2 to be explicitly specified along with part
If there is a v1: or v2: prefix, that's the protocol/addr type.  Otherwise,
we assume msgr2.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
bdfbd857e2 msg/msg_types: allow parsing of IPs without assuming v1 vs v2
Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
12416b77bd msg/msg_types: default parse to v2 addrs
If we parse "1.2.3.4", parse to v2:1.2.3.4:0/0, not a v1 legacy addr.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
f174bbead4 msg: standarize on v1: and v2: prefixes for *all* entity_addr_t's
This is more consistent than 1.2.3.4:0/0 being v1 and msgr2:1.2.3.4:0/0
being v2.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
15684843f0 vstart.sh: use msgr2 by default
This is useful because we tend to bind to random ports

Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00
Sage Weil
399aba37fe mon/MonMap: remove get_addr() methods
Signed-off-by: Sage Weil <sage@redhat.com>
2018-12-21 15:31:32 -06:00