Backport #21899
Updated by Nathan Cutler over 6 years ago
https://github.com/ceph/ceph/pull/18491 A client application that was compiled against a pre-Luminous librados C++ API and therefore utilizing bufferlist will now be ABI incompatible w/ the Luminous version of librados. Specifically, the addition of "_mempool" within buffer::list causes a seg fault since pre-Luminous clients would not have initialized that field. <pre> #0 mempool::pool_t::adjust_count (this=0x8737e8a5c980, items=items@entry=1, bytes=bytes@entry=4008) at /home/jdillaman/ceph/src/common/mempool.cc:85 #1 0x00007ffff75dea47 in ceph::buffer::raw::reassign_to_mempool (this=<optimized out>, this=<optimized out>, pool=1879025072) at /home/jdillaman/ceph/src/common/buffer.cc:206 #2 ceph::buffer::list::append (this=this@entry=0x7fff6fffa5b0, data=data@entry=0x7fffee427477 "ceph v027", len=len@entry=9) at /home/jdillaman/ceph/src/common/buffer.cc:1912 #3 0x00007fffee0ab632 in AsyncConnection::_process_connection (this=this@entry=0x7fff64009730) at /home/jdillaman/ceph/src/msg/async/AsyncConnection.cc:923 #4 0x00007fffee0b1e98 in AsyncConnection::process (this=0x7fff64009730) at /home/jdillaman/ceph/src/msg/async/AsyncConnection.cc:838 #5 0x00007fffee0c4405 in EventCenter::process_events (this=this@entry=0xb09910, timeout_microseconds=<optimized out>, timeout_microseconds@entry=30000000, working_dur=working_dur@entry=0x7fff6fffb2e8) at /home/jdillaman/ceph/src/msg/async/Event.cc:436 #6 0x00007fffee0c8b68 in NetworkStack::<lambda()>::operator()(void) const (__closure=0xb369c8) at /home/jdillaman/ceph/src/msg/async/Stack.cc:53 #7 0x00007ffff703376f in ?? () from /lib64/libstdc++.so.6 #8 0x00007ffff730773a in start_thread () from /lib64/libpthread.so.0 #9 0x00007ffff6aa2e7f in clone () from /lib64/libc.so.6 </pre>