Project

General

Profile

Bug #21573

Updated by Jason Dillaman about 2 years ago

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. field (not to mention that the ordering has changed).

<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>

Back