root@juju-80cd62-0:~/src# ceph-mon --version ceph version 12.2.8 (ae699615bac534ea496ee965ac6192cb7e0e07c0) luminous (stable) Attach to ceph-mon ------------------ # while [ true ]; do pid=$(pgrep "ceph-mon"); if [ "$pid" != "" ]; then gdb -p $pid; fi; done (gdb) dir /root/src/ceph-12.2.8 (gdb) set print pretty on The problem seems to occur in decode_32_or_64_string_map() ---------------------------------------------------------- (gdb) b decode_32_or_64_string_map (gdb) c Thread 15 "ms_dispatch" hit Breakpoint 1, decode_32_or_64_string_map (m=std::map with 0 elements, blp=...) at ./src/crush/CrushWrapper.cc:2451 2451 { (gdb) b ::decode_nohead (gdb) c Thread 15 "ms_dispatch" hit Breakpoint 2, decode_32_or_64_string_map (m=std::map with 1 element = {...}, blp=...) at ./src/crush/CrushWrapper.cc:2465 2465 ::decode_nohead(strlen, m[key], blp); (gdb) print strlen $1 = 50331648 (48 MiB) (gdb) print m $2 = std::map with 1 element = {[0] = ""} (gdb) print blp $3 = (ceph::buffer::list::iterator &) @0x3ff86ff8a78: { > = { > = {},. members of ceph::buffer::list::iterator_impl:. bl = 0x3ff86ff8c70,. ls = 0x3ff86ff8c70,. off = 124,. p = { _raw = 0x3ff600187a8,. _off = 0,. _len = 340 },. p_off = 124 }, } (gdb) s (gdb) s (gdb) s (gdb) s (gdb) s decode_nohead (p=..., s=..., len=50331648) at ./src/include/encoding.h:208 208 p.copy(len, s); (gdb) print len $5 = 50331648 (gdb) print s $6 = (gdb) s (gdb) s Thread 15 "ms_dispatch" received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.