Project

General

Profile

Actions

Bug #50646

closed

fix 32-bit/64-bit server/client interoperability under msgr2

Added by Ilya Dryomov almost 3 years ago. Updated almost 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
common
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
nautilus,octopus,pacific
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Under msgr2, each message segment has a 16-bit align field. It is set to sizeof(void *) for header, front and middle segments and to PAGE_SIZE for data segment.

A 32-bit server/client would set it to 4 and if the other side is 64-bit, it faults upon receiving the first frame. The problem is posix_memalign(), which requires its alignment argument to be a multiple of sizeof(void *) and returns EINVAL otherwise. ProtocolV2 passes align to buffer::create_aligned() unmodified and is right to do so -- posix_memalign() is hidden deep in the buffer/bufferlist machinery.

This has been reported at least twice:

https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1746917.html
https://github.com/ceph/ceph-csi/issues/2048


Related issues 3 (0 open3 closed)

Copied to Ceph - Backport #50698: pacific: fix 32-bit/64-bit server/client interoperability under msgr2ResolvedIlya DryomovActions
Copied to Ceph - Backport #50699: octopus: fix 32-bit/64-bit server/client interoperability under msgr2ResolvedIlya DryomovActions
Copied to Ceph - Backport #50700: nautilus: fix 32-bit/64-bit server/client interoperability under msgr2ResolvedIlya DryomovActions
Actions #1

Updated by Ilya Dryomov almost 3 years ago

  • Status changed from In Progress to Fix Under Review
  • Pull request ID set to 41143
Actions #2

Updated by Ilya Dryomov almost 3 years ago

  • Backport set to nautilus,octopus,pacific
Actions #3

Updated by Kefu Chai almost 3 years ago

  • Status changed from Fix Under Review to Pending Backport
Actions #4

Updated by Backport Bot almost 3 years ago

  • Copied to Backport #50698: pacific: fix 32-bit/64-bit server/client interoperability under msgr2 added
Actions #5

Updated by Backport Bot almost 3 years ago

  • Copied to Backport #50699: octopus: fix 32-bit/64-bit server/client interoperability under msgr2 added
Actions #6

Updated by Backport Bot almost 3 years ago

  • Copied to Backport #50700: nautilus: fix 32-bit/64-bit server/client interoperability under msgr2 added
Actions #7

Updated by Loïc Dachary almost 3 years ago

  • Status changed from Pending Backport to Resolved

While running with --resolve-parent, the script "backport-create-issue" noticed that all backports of this issue are in status "Resolved" or "Rejected".

Actions

Also available in: Atom PDF