The remaining messenger-related leak with --show-reachable=yes:
</==27799== 304 bytes in 1 blocks are indirectly lost in loss record 9 of 13
==27799== at 0x4C24DFA: operator new(unsigned long) (vg_replace_malloc.c:261)
==27799== by 0x528BC87: SimpleMessenger::Pipe::Pipe(SimpleMessenger*, int) (SimpleMessenger.h:221)
==27799== by 0x52C4559: SimpleMessenger::connect_rank(entity_addr_t const&, int) (SimpleMessenger.cc:2474)
==27799== by 0x52C4EC9: SimpleMessenger::get_connection(entity_inst_t const&) (SimpleMessenger.cc:2584)
==27799== by 0x52D66BD: Objecter::get_session(int) (Objecter.cc:340)
==27799== by 0x52D8C09: Objecter::recalc_op_target(Objecter::Op*) (Objecter.cc:593)
==27799== by 0x52D79A7: Objecter::op_submit(Objecter::Op*, Objecter::OSDSession*) (Objecter.cc:490)
==27799== by 0x528F11F: Objecter::read(object_t const&, object_locator_t const&, unsigned long, unsigned long, snapid_t, ceph::buffer::list*, int, Context*, eversion_t*, ObjectOperation*) (Objecter.h:674)
==27799== by 0x527E79D: librados::RadosClient::read(librados::IoCtxImpl&, object_t const&, ceph::buffer::list&, unsigned long, unsigned long) (librados.cc:1468)
==27799== by 0x5281CD2: librados::IoCtx::read(std::string const&, ceph::buffer::list&, unsigned long, unsigned long) (librados.cc:2151)
==27799== by 0x4E44540: librbd::list(librados::IoCtx&, std::vector<std::string, std::allocator<std::string> >&) (librbd.cc:520)
==27799== by 0x4E4A784: rbd_list (librbd.cc:1519)
==27799==
==27799== 364 bytes in 14 blocks are indirectly lost in loss record 10 of 13
==27799== at 0x4C24A72: operator new[](unsigned long) (vg_replace_malloc.c:305)
==27799== by 0x4E4C026: ceph::buffer::raw_char::raw_char(unsigned int) (buffer.h:174)
==27799== by 0x4E4C512: ceph::buffer::create(unsigned int) (buffer.h:313)
==27799== by 0x52C0A08: SimpleMessenger::Pipe::read_message(Message**) (SimpleMessenger.cc:1862)
==27799== by 0x52BEE8B: SimpleMessenger::Pipe::reader() (SimpleMessenger.cc:1574)
==27799== by 0x528B9D3: SimpleMessenger::Pipe::Reader::entry() (SimpleMessenger.h:196)
==27799== by 0x52C8148: Thread::_entry_func(void*) (Thread.h:41)
==27799== by 0x5C428B9: start_thread (pthread_create.c:300)
==27799== by 0x57A502C: clone (clone.S:112)
==27799==
==27799== 448 bytes in 14 blocks are indirectly lost in loss record 11 of 13
==27799== at 0x4C24DFA: operator new(unsigned long) (vg_replace_malloc.c:261)
==27799== by 0x4E4C4FF: ceph::buffer::create(unsigned int) (buffer.h:313)
==27799== by 0x52C0A08: SimpleMessenger::Pipe::read_message(Message**) (SimpleMessenger.cc:1862)
==27799== by 0x52BEE8B: SimpleMessenger::Pipe::reader() (SimpleMessenger.cc:1574)
==27799== by 0x528B9D3: SimpleMessenger::Pipe::Reader::entry() (SimpleMessenger.h:196)
==27799== by 0x52C8148: Thread::_entry_func(void*) (Thread.h:41)
==27799== by 0x5C428B9: start_thread (pthread_create.c:300)
==27799== by 0x57A502C: clone (clone.S:112)
==27799==
==27799== 5,488 bytes in 14 blocks are indirectly lost in loss record 12 of 13
==27799== at 0x4C24DFA: operator new(unsigned long) (vg_replace_malloc.c:261)
==27799== by 0x5333E55: decode_message(ceph_msg_header&, ceph_msg_footer&, ceph::buffer::list&, ceph::buffer::list&, ceph::buffer::list&) (Message.cc:293)
==27799== by 0x52C181F: SimpleMessenger::Pipe::read_message(Message**) (SimpleMessenger.cc:1952)
==27799== by 0x52BEE8B: SimpleMessenger::Pipe::reader() (SimpleMessenger.cc:1574)
==27799== by 0x528B9D3: SimpleMessenger::Pipe::Reader::entry() (SimpleMessenger.h:196)
==27799== by 0x52C8148: Thread::_entry_func(void*) (Thread.h:41)
==27799== by 0x5C428B9: start_thread (pthread_create.c:300)
==27799== by 0x57A502C: clone (clone.S:112)
==27799==
==27799== 7,052 (448 direct, 6,604 indirect) bytes in 14 blocks are definitely lost in loss record 13 of 13
==27799== at 0x4C24DFA: operator new(unsigned long) (vg_replace_malloc.c:261)
==27799== by 0x4E545E4: __gnu_cxx::new_allocator<std::_List_node<ceph::buffer::ptr> >::allocate(unsigned long, void const*) (new_allocator.h:89)
==27799== by 0x4E52D41: std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_get_node() (stl_list.h:316)
==27799== by 0x4E50CE2: std::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_create_node(ceph::buffer::ptr const&) (stl_list.h:461)
==27799== by 0x4E50BAC: std::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_insert(std::_List_iterator<ceph::buffer::ptr>, ceph::buffer::ptr const&) (stl_list.h:1407)
==27799== by 0x4E4F8D1: std::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::push_back(ceph::buffer::ptr const&) (stl_list.h:920)
==27799== by 0x4E4D862: ceph::buffer::list::push_back(ceph::buffer::ptr const&) (buffer.h:804)
==27799== by 0x52C0A85: SimpleMessenger::Pipe::read_message(Message**) (SimpleMessenger.cc:1865)
==27799== by 0x52BEE8B: SimpleMessenger::Pipe::reader() (SimpleMessenger.cc:1574)
==27799== by 0x528B9D3: SimpleMessenger::Pipe::Reader::entry() (SimpleMessenger.h:196)
==27799== by 0x52C8148: Thread::_entry_func(void*) (Thread.h:41)
==27799== by 0x5C428B9: start_thread (pthread_create.c:300)