ceph -- Unable to mount ceph volume on s390x
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Fix Released
|
High
|
Skipper Bug Screeners | ||
linux (Ubuntu) |
Fix Released
|
High
|
Canonical Kernel Team | ||
Focal |
Fix Released
|
Undecided
|
Canonical Kernel Team | ||
Groovy |
Fix Released
|
High
|
Canonical Kernel Team |
Bug Description
SRU Justification:
==================
[Impact]
* Unable to mount ceph volumes on big endian systems, like s390x.
* The mount operation always fails with an IO error.
* This is caused by an endiness issue in function handle_session where variable features is always little endian.
* But test_bit assumes the host order of bytes, hence causes a problem on big endian systems.
[Fix]
* 0fa8263367db928
[Test Case]
* Setup ceph on s390x.
* Try to mount a ceph volume.
* If it mounts correctly the patch is applied and working.
* Without the patch a mount always fails on big endian / s390x.
[Regression Potential]
* There is regression potential with having code changes in ceph's session handler, which is common code.
* However, the patch was accepted (slightly changed) by the ceph maintainers and with that got upstream accepted, too.
* The patch is fairly limited (5 lines removed, 3 added), hence the changes are quite traceable.
__________
When mounting a ceph volume, mount operation fails with an IO error.
The problem is always reproducible.
Identified potential root cause as kernel endian bug:
In the function handle_session() variable @features always
contains little endian order of bytes. Just because The feature
mask sent by the MDS is little-endian (bits are packed bytewise
from left to right in encode_
However, test_bit(), called to check features availability, assumes
the host order of bytes in that variable. This leads to problems on
big endian architectures. Specifically it is impossible to mount
ceph volume on s390.
A fixup was proposed to convert little-endian order of bytes to the host one. That fixup was modified by ceph maintainers to use existing unpacking means for the conversion. The resulted patch attached.
Related discussion in the ceph-development mailing list:
https:/
CVE References
Changed in ubuntu-z-systems: | |
importance: | Undecided → High |
assignee: | nobody → Ubuntu OpenStack (ubuntu-openstack) |
tags: | added: openstack-ibm |
Changed in ceph (Ubuntu): | |
status: | New → Invalid |
Changed in ubuntu-z-systems: | |
assignee: | Ubuntu OpenStack (ubuntu-openstack) → Skipper Bug Screeners (skipper-screen-team) |
Changed in linux (Ubuntu): | |
assignee: | nobody → Canonical Kernel Team (canonical-kernel-team) |
no longer affects: | ceph (Ubuntu) |
Changed in linux (Ubuntu): | |
importance: | Undecided → High |
Changed in linux (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in ubuntu-z-systems: | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Groovy): | |
status: | Fix Committed → In Progress |
Changed in linux (Ubuntu Focal): | |
status: | New → In Progress |
description: | updated |
Changed in linux (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Focal): | |
assignee: | nobody → Canonical Kernel Team (canonical-kernel-team) |
tags: |
added: verification-failed-focal removed: verification-needed-focal |
Changed in ubuntu-z-systems: | |
status: | Fix Committed → Fix Released |
Default Comment by Bridge