Bug #40070
closedmon/OSDMonitor: target_size_bytes integer overflow
0%
Description
Nautilus 14.2.1 on Ubuntu 18.04 LTS, kernel 4.18 (HWE)
It appears that the "target_size_bytes" setting has an integer overflow:
root@m3-3101-422:~# ceph osd pool set cephfs_data_build target_size_bytes 1000000000000
set pool 3 target_size_bytes to 1000000000000
root@m3-3101-422:~# ceph osd pool get cephfs_data_build target_size_bytes
target_size_bytes: -858993548
root@m3-3101-422:~# ceph osd pool autoscale-status
POOL SIZE TARGET SIZE RATE RAW CAPACITY RATIO TARGET RATIO BIAS PG_NUM NEW PG_NUM AUTOSCALE
cephfs_metadata_cscf-home 2117M 3.0 191.9G 0.0323 1.0 16 4 warn
cephfs_data_build 0 3.0 590.9T 0.0000 1.0 16 4 warn
cephfs_metadata_build 384.0k 3.0 191.9G 0.0000 1.0 16 4 warn
cephfs_data_cscf-home 390.6G 3.0 590.9T 0.0019 1.0 16 4 warn
Also, if the number is 5497558138880 (5*2^40 = 5TiB) it returns '0':
root@m3-3101-422:~# ceph osd pool set cephfs_data_build target_size_bytes 5497558138880
set pool 3 target_size_bytes to 5497558138880
root@m3-3101-422:~# ceph osd pool get cephfs_data_build target_size_bytes
target_size_bytes: 0
Updated by Nathan Fish almost 5 years ago
This worked fine for me in an earlier version of this cluster, which was running 14.2.0. But it's possible things other than version have changed since then.
Updated by Patrick Donnelly almost 5 years ago
- Project changed from CephFS to RADOS
- Subject changed from target_size_bytes integer overflow to mon/OSDMonitor: target_size_bytes integer overflow
- Category changed from Correctness/Safety to Correctness/Safety
- Priority changed from Normal to High
- Target version set to v15.0.0
- Start date deleted (
05/29/2019) - Source set to Community (user)
- Backport set to nautilus
- Component(RADOS) Monitor added
Updated by Nathan Fish almost 5 years ago
This was resolved by setting "ceph osd require-osd-release nautilus".
Updated by Sage Weil almost 5 years ago
- Status changed from New to Rejected
this is by design. the target_size is new in nautilus, so we don't encode it in the map until require_osd_release >= nautilus.