Actions
Bug #50646
closedfix 32-bit/64-bit server/client interoperability under msgr2
% Done:
0%
Source:
Tags:
Backport:
nautilus,octopus,pacific
Regression:
No
Severity:
3 - minor
Reviewed:
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
Actions