Actions
Bug #62281
openOsd didn't set correct numa because interface was not found.
Status:
Fix Under Review
Priority:
Normal
Assignee:
-
Category:
common
Target version:
-
% Done:
0%
Description
On setup with multiple interfaces and multi-core
Notice On startup that the OSD didn't set numa affinity.
saw in OSD logs that could not find interface.
check function pick_iface and saw that function is sending the first pointer for all interface
function should send the addr pointer and not the ifa pointer to the matches_with_net function.
std::string pick_iface(CephContext *cct, const struct sockaddr_storage &network)
{
struct ifaddrs *ifa;
int r = getifaddrs(&ifa);
....
for (auto addr = ifa; addr != nullptr; addr = addr->ifa_next) {
if (matches_with_net(*ifa, (const struct sockaddr *) &network, prefix_len,
CEPH_PICK_ADDRESS_IPV4 | CEPH_PICK_ADDRESS_IPV6)) {
return addr->ifa_name;
}
}
return {};
Actions