From c7f2056f7415c5d26b0503e7c13a89e6b4856341 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Wed, 6 Oct 2021 11:16:31 +0000 Subject: [PATCH] crimson/osd: pick only v2 addresses. Otherwise we'll run into an assertion failure when binding: ``` INFO 2021-10-05 15:14:51,075 [shard 0] osd - picked address v2:0.0.0.0:0/0 INFO 2021-10-05 15:14:51,075 [shard 0] osd - picked address v1:0.0.0.0:0/0 ceph-osd: /home/jenkins-build/build/workspace/ceph-dev-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-8025-geb9c0f59/rpm/el8/BUILD/ceph-17.0.0-8025-geb9c0f59/src/crimson/net/SocketMessenger.cc:89: crimson::errorator))>, crimson::unthrowable_wrapper))> >::future<> crimson::net::SocketMessenger::try_bind(const entity_addrvec_t&, uint32_t, uint32_t): Assertion `addrs.size() == 1' failed. Aborting on shard 0. ``` Signed-off-by: Radoslaw Zarzynski --- src/crimson/osd/osd.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index ea5c46bf1f4..4b146bbb7b2 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -219,7 +219,9 @@ namespace { entity_addrvec_t pick_addresses(int what) { entity_addrvec_t addrs; crimson::common::CephContext cct; - if (int r = ::pick_addresses(&cct, what, &addrs, -1); r < 0) { + // we're interested solely in v2; crimson doesn't do v1 + const auto flags = what | CEPH_PICK_ADDRESS_MSGR2; + if (int r = ::pick_addresses(&cct, flags, &addrs, -1); r < 0) { throw std::runtime_error("failed to pick address"); } for (auto addr : addrs.v) { -- 2.39.5