Project

General

Profile

Bug #40114

msg: bad address encoding when CEPH_FEATURE_MSG_ADDR2 enabled

Added by Jeff Layton 5 months ago. Updated 5 months ago.

Status:
Pending Backport
Priority:
Urgent
Assignee:
Category:
-
Target version:
Start date:
Due date:
% Done:

0%

Source:
Development
Tags:
Backport:
nautilus
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature:

Description

On Linux, entity_addr_t::encode just copies the sockaddr as-is into the bufferlist, without fixing up the endianness of sa_family. entity_addr_t::decode copies it out in reverse cloaking the bug when the encoder and decoder are the same endianness.

The family field should be net-endian (as it is for legacy addrs), since there is no way for the other end to know what byte-order we're using.

Fixing this is rather simple, but how to deal with hosts already in the field?


Related issues

Copied to Messengers - Backport #40227: nautilus: msg: bad address encoding when CEPH_FEATURE_MSG_ADDR2 enabled In Progress

History

#1 Updated by Jeff Layton 5 months ago

Another bug too: Apparently BSD/OSX have a sa_len field in the sockaddr, but it does not reduce the length that it encodes for the address by that amount. Sage pointed out this PR, which is related:

https://github.com/ceph/ceph/pull/26606

#2 Updated by Jeff Layton 5 months ago

So the plan I think is to just have the clients assume that the field in question is LE. That means that LE hosts without the fix will continue to work, but BE hosts may have trouble until they are all fixed. Working on a test patch now.

#3 Updated by Patrick Donnelly 5 months ago

  • Subject changed from bad address encoding when CEPH_FEATURE_MSG_ADDR2 enabled to msg: bad address encoding when CEPH_FEATURE_MSG_ADDR2 enabled
  • Status changed from New to Need Review
  • Assignee set to Jeff Layton
  • Priority changed from Normal to Urgent
  • Target version set to v15.0.0
  • Start date deleted (06/03/2019)
  • Source set to Development
  • Backport set to nautilus
  • Pull request ID set to 28379

#5 Updated by Kefu Chai 5 months ago

  • Status changed from Need Review to Pending Backport

#6 Updated by Nathan Cutler 5 months ago

  • Copied to Backport #40227: nautilus: msg: bad address encoding when CEPH_FEATURE_MSG_ADDR2 enabled added

Also available in: Atom PDF