Project

General

Profile

Bug #40070

mon/OSDMonitor: target_size_bytes integer overflow

Added by Nathan Fish 5 months ago. Updated 3 months ago.

Status:
Rejected
Priority:
Urgent
Assignee:
-
Category:
Correctness/Safety
Target version:
Start date:
Due date:
% Done:

0%

Source:
Community (user)
Tags:
Backport:
nautilus
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
Monitor
Pull request ID:
Crash signature:

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

History

#1 Updated by Nathan Fish 5 months 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.

#2 Updated by Patrick Donnelly 5 months ago

  • Project changed from fs 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

#3 Updated by Neha Ojha 5 months ago

  • Priority changed from High to Urgent

#4 Updated by Nathan Fish 4 months ago

This was resolved by setting "ceph osd require-osd-release nautilus".

#5 Updated by Sage Weil 3 months 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.

Also available in: Atom PDF