Re: [PATCH] libceph: accept addrvecs with multiple entries of the same type

From: Ilya Dryomov

Date: Thu Apr 23 2026 - 06:43:51 EST


On Thu, Apr 23, 2026 at 12:09 PM Kefu Chai <k.chai@xxxxxxxxxxx> wrote:
>
> ceph_decode_entity_addrvec() rejects any addrvec containing more than
> one entry that matches the requested msgr type (LEGACY or MSGR2),
> logging "another match of type N in addrvec" and returning -EINVAL.
> This breaks legitimate deployments where a daemon advertises multiple
> addresses of the same type, most notably dual-stack (IPv4 + IPv6)
> clusters

Hi Kefu,

My understanding is that dual-stack isn't supported in general:
https://tracker.ceph.com/issues/65631. The respective references were
purged from the documentation with Radoslaw (offline?) ack.

> and multi-subnet deployments where tooling picks one address
> per listed public_network.

Can you elaborate on when such tooling kicks in, what exactly does it
do and the use case in general? It's not immediately obvious to me how
having two addresses of the same type/stack and simply ignoring the
second one is better than insisting on having a just single address.

> Match the userspace messenger, which since Nautilus picks the first
> entry of the requested type and silently tolerates subsequent entries.

Do you have a reference to a specific commit? I'm wondering if it
isn't on that "merged more or less accidentally" list.

Thanks,

Ilya