Hi,

I don’t have a response to all your questions, but will try to answer a few.

Zitat von Chris Palmer via ceph-users <[email protected]>:

Due to a number of power and heat events, I had to power down a small ceph cluster last night. There was only time to do a operating system shutdown of all nodes.

When the systems rebooted a few hours later, all was ok except that all 3 MGRs would abort and restart until they reached the restart limit. This left the system with no MGRs and no orchestration. All OSD, MDS, RGW & monitoring subsystems were working as normally as could be expected without an MGR.

Analysis of the log files showed each MGR aborting with the assertion below. Every one was in the telemetry thread. I disabled telemetry and the MGRs could be restarted normally. Questions:

 * What caused the assertion error? Was it related to the total shutdown?
 * Aborting the entire MGR seems overkill. Disabling the telemetry
   module and raising a warning seems more proportionate.
 * When running with no active MGR the client IO stats in ceph -s were
   frozen (at plausible non-zero values). Is that expected with no
   active MGR?

Yes, OSDs report their stats to the MGR which is responsible for displaying those in tje status.

 * With no active MGR a large number of deep-scrubs started - roughly 3
   times the maximum number we ever see were actively deep-scrubbing,
   with none in the scrub wait state, and response times were horrible.
   Is this expected with no MGR to control it properly? I had to
   temporarily disable scrubs and deep-scrubs as a workaround.

I see the same after restarting an entire cluster (mostly in small lab environments), I don’t think that has to do with no active mgr. Although mgr and osd have each a deep-scrub interval, the OSDs are responsible for scheduling. So this is most likely just how OSDs work after a cluster reboot.

I haven't yet tried 20.2.2, but I couldn't see anything obvious in the release notes. (Although there were about 3 PRs that I thought might have had the potential to upset exception handling...).

Thanks, Chris


{
  "crash_id": "2026-06-26T01:46:00.265207Z_b0579062-d65c-4a51-8dbc-d9837209aa80",
  "timestamp": "2026-06-26T01:46:00.265207Z",
  "process_name": "ceph-mgr",
  "entity_name": "mgr.ceph2",
  "ceph_version": "20.2.1",
  "utsname_hostname": "ceph2",
  "utsname_sysname": "Linux",
  "utsname_release": "7.0.12-201.fc44.x86_64",
  "utsname_version": "#1 SMP PREEMPT_DYNAMIC Thu Jun 11 01:30:16 UTC 2026",
  "utsname_machine": "x86_64",
  "os_name": "CentOS Stream",
  "os_id": "centos",
  "os_version_id": "9",
  "os_version": "9",
  "assert_condition": "cursor != root",
  "assert_func": "virtual void PyFormatter::close_section()",
  "assert_file": "/ceph/rpmbuild/BUILD/ceph-20.2.1/src/mgr/PyFormatter.h",
  "assert_line": 84,
  "assert_thread_name": "telemetry",
  "assert_msg": "/ceph/rpmbuild/BUILD/ceph-20.2.1/src/mgr/PyFormatter.h: In function 'virtual void PyFormatter::close_section()' thread 7f752186e640 time 2026-06-26T01:46:00.263380+0000\n/ceph/rpmbuild/BUILD/ceph-20.2.1/src/mgr/PyFormatter.h: 84: FAILED ceph_assert(cursor != root)\n",
  "backtrace": [
    "/lib64/libc.so.6(+0x3fc30) [0x7f75a9eb8c30]",
    "/lib64/libc.so.6(+0x8d05c) [0x7f75a9f0605c]",
    "raise()",
    "abort()",
    "(ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x18e) [0x7f75aa9ed95b]",
    "/usr/bin/ceph-mgr(+0x6f7a5) [0x55ac462367a5]",
"(ActivePyModules::get_perf_schema_python(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x15a3) [0x55ac462d3143]",
    "/usr/bin/ceph-mgr(+0x12ba12) [0x55ac462f2a12]",
    "/lib64/libpython3.9.so.1.0(+0x15b4b7) [0x7f75ab5e34b7]",
    "_PyEval_EvalFrameDefault()",
    "/lib64/libpython3.9.so.1.0(+0x14169b) [0x7f75ab5c969b]",
    "_PyEval_EvalFrameDefault()",
    "/lib64/libpython3.9.so.1.0(+0x12ec69) [0x7f75ab5b6c69]",
    "_PyFunction_Vectorcall()",
    "_PyEval_EvalFrameDefault()",
    "/lib64/libpython3.9.so.1.0(+0x12ec69) [0x7f75ab5b6c69]",
    "_PyFunction_Vectorcall()",
    "_PyEval_EvalFrameDefault()",
    "/lib64/libpython3.9.so.1.0(+0x12ec69) [0x7f75ab5b6c69]",
    "_PyFunction_Vectorcall()",
    "_PyEval_EvalFrameDefault()",
    "/lib64/libpython3.9.so.1.0(+0x12ec69) [0x7f75ab5b6c69]",
    "_PyFunction_Vectorcall()",
    "_PyEval_EvalFrameDefault()",
    "/lib64/libpython3.9.so.1.0(+0x14169b) [0x7f75ab5c969b]",
    "/lib64/libpython3.9.so.1.0(+0x14fa85) [0x7f75ab5d7a85]",
    "/lib64/libpython3.9.so.1.0(+0x138725) [0x7f75ab5c0725]",
    "_PyObject_CallMethod_SizeT()",
    "(PyModuleRunner::serve()+0x66) [0x55ac463759e6]",
    "(PyModuleRunner::PyModuleRunnerThread::entry()+0x139) [0x55ac463761e9]",
    "/lib64/libc.so.6(+0x8b31a) [0x7f75a9f0431a]"
  ]
}
_______________________________________________
ceph-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]


_______________________________________________
ceph-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to