Bug #23618
Updated by Brad Hubbard about 6 years ago
<pre>
(gdb) bt
#0 0x00007f77454c303e in AsyncConnection::_process_connection (this=this@entry=0x55b71778c700) at /home/brad/working/src/ceph4/src/msg/async/AsyncConnection.cc:974
#1 0x00007f77454c49f8 in AsyncConnection::process (this=<optimized out>) at /home/brad/working/src/ceph4/src/msg/async/AsyncConnection.cc:822
#2 0x00007f77454d536d in EventCenter::process_events (this=this@entry=0x55b717573700, timeout_microseconds=<optimized out>, timeout_microseconds@entry=30000000, working_dur=working_dur@entry=0x7f773f0542d8)
at /home/brad/working/src/ceph4/src/msg/async/Event.cc:412
#3 0x00007f77454d8034 in NetworkStack::<lambda()>::operator() (__closure=0x55b71766d2f8) at /home/brad/working/src/ceph4/src/msg/async/Stack.cc:53
#4 std::_Function_handler<void(), NetworkStack::add_thread(unsigned int)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/7/bits/std_function.h:316
#5 0x00007f77420d814f in execute_native_thread_routine () from /lib64/libstdc++.so.6
#6 0x00007f77427c550b in start_thread () from /lib64/libpthread.so.0
#7 0x00007f77417f916f in clone () from /lib64/libc.so.6
(gdb) l 974
969
970 ldout(async_msgr->cct, 20) << __func__ << " connect peer addr for me is " << peer_addr_for_me << dendl;
971 lock.unlock();
972 async_msgr->learned_addr(peer_addr_for_me);
973 if (async_msgr->cct->_conf->ms_inject_internal_delays) {
974 if (rand() % async_msgr->cct->_conf->ms_inject_socket_failures == 0) {
975 ldout(msgr->cct, 10) << __func__ << " sleep for "
976 << async_msgr->cct->_conf->ms_inject_internal_delays << dendl;
977 utime_t t;
978 t.set_from_double(async_msgr->cct->_conf->ms_inject_internal_delays);
(gdb) p async_msgr->cct->_conf->ms_inject_socket_failures
$2 = 0
</pre>
If ms_inject_internal_delays is set, but ms_inject_socket_failures is left at its default value of zero we get an fpe. Elsewhere similar code is wrapped in a test of ms_inject_socket_failures so let's do that.
https://github.com/ceph/ceph/pull/21314