Project: mesos
Issue MESOS-2771: SIGSEGV received during ResourceMonitorProcess::usage()
Observed in production. {noformat:title=slave log} I0523 17:03:59.830229 56587 port_mapping.cpp:2616] Freed ephemeral ports [33792,34816) for container with pid 47791 I0523 17:03:59.849773 56587 port_mapping.cpp:2764] Successfully performed cleanup for pid 47791 *** Aborted at 1432400641 (unix time) try "date -d @1432400641" if you are using GNU date *** PC: @ 0x7f100fcbfd85 _ZNSt17_Function_handlerIFvRKSsEZNK7process6FutureIN5mesos8internal5slave15ResourceMonitor5UsageEE8onFailedIZNS7_22ResourceMonitorProcess5usageENS5_11ContainerIDEEUlS1_E_vEERKSA_OT_NSA_6PreferEEUlS1_E_E9_M_invokeERKSt9_Any_dataS1_ I0523 17:03:59.898959 56587 slave.cpp:3246] Executor 'thermos-1432400210944-mesos-test-exhaust_diskspace-5-4744d0fb-e0a1-4e40-bb22-56bd5cbd9524' of framework 201103282247-0000000019-0000 terminated with signal Killed I0523 17:04:03.419869 56587 slave.cpp:2547] Handling status update TASK_FAILED (UUID: 3be19404-f737-4a70-a330-d1d924a85dbb) for task 1432400210944-mesos-test-exhaust_diskspace-5-4744d0fb-e0a1-4e40-bb22-56bd5cbd9524 of framework 201103282247-0000000019-0000 from @0.0.0.0:0 I0523 17:04:03.773061 56587 slave.cpp:4077] Received a new estimation of the oversubscribable resources I0523 17:04:03.773907 56587 slave.cpp:4077] Received a new estimation of the oversubscribable resources I0523 17:04:03.774683 56587 slave.cpp:4077] Received a new estimation of the oversubscribable resources I0523 17:04:03.776345 56587 slave.cpp:4077] Received a new estimation of the oversubscribable resources *** SIGSEGV (@0x0) received by PID 56573 (TID 0x7f100a190940) from PID 0; stack trace: *** @ 0x7f100f181ca0 (unknown) @ 0x7f100fcbfd85 _ZNSt17_Function_handlerIFvRKSsEZNK7process6FutureIN5mesos8internal5slave15ResourceMonitor5UsageEE8onFailedIZNS7_22ResourceMonitorProcess5usageENS5_11ContainerIDEEUlS1_E_vEERKSA_OT_NSA_6PreferEEUlS1_E_E9_M_invokeERKSt9_Any_dataS1_ @ 0x7f100fb01506 process::internal::run<>() @ 0x7f100fcc701b process::Future<>::fail() @ 0x7f100fccfbde process::internal::thenf<>() @ 0x7f100fd64bee _ZN7process8internal3runISt8functionIFvRKNS_6FutureIN5mesos18ResourceStatisticsEEEEEJRS6_EEEvRKSt6vectorIT_SaISD_EEDpOT0_ @ 0x7f100fd656dd process::Future<>::fail() @ 0x7f100fd6c332 process::Promise<>::associate() @ 0x7f100fe2777e _ZNSt17_Function_handlerIFvPN7process11ProcessBaseEEZNS0_8dispatchIN5mesos18ResourceStatisticsENS5_8internal5slave25MesosContainerizerProcessERKNS5_11ContainerIDESA_EENS0_6FutureIT_EERKNS0_3PIDIT0_EEMSH_FSF_T1_ET2_EUlS2_E_E9_M_invokeERKSt9_Any_dataS2_ @ 0x7f101015561a process::ProcessManager::resume() @ 0x7f10101558dc process::schedule() @ 0x7f100f17983d start_thread @ 0x7f100e96bfcd clone /usr/local/bin/mesos-slave.sh: line 102: 56573 Segmentation fault (core dumped) $debug /usr/local/sbin/mesos-slave "${MESOS_FLAGS[@]}" Slave Exit Status: 139 {noformat} {noformat:title=gdb core dump} Thread 20 (Thread 0x7f100a190940 (LWP 56574)): #0 _M_data (__functor=Unhandled dwarf expression opcode 0xf3 ) at /opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/bits/basic_string.h:293 #1 _M_rep (__functor=Unhandled dwarf expression opcode 0xf3 ) at /opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/bits/basic_string.h:301 #2 size (__functor=Unhandled dwarf expression opcode 0xf3 ) at /opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/bits/basic_string.h:716 #3 operator<< , std::allocator > (__functor=Unhandled dwarf expression opcode 0xf3 ) at /opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/bits/basic_string.h:2758 #4 operator<< (__functor=Unhandled dwarf expression opcode 0xf3 ) at ../include/mesos/type_utils.hpp:267 #5 operator() (__functor=Unhandled dwarf expression opcode 0xf3 ) at slave/monitor.cpp:129 #6 operator() (__functor=Unhandled dwarf expression opcode 0xf3 ) at ../3rdparty/libprocess/include/process/future.hpp:220 #7 std::_Function_handler, std::allocator >&), process::Future::onFailed(F&&, process::Future::Prefer) const [with F = mesos::internal::slave::ResourceMonitorProcess::usage(mesos::ContainerID)::__lambda180; = void; T = mesos::internal::slave::ResourceMonitor::Usage]::__lambda2>::_M_invoke(const std::_Any_data &, const std::basic_string, std::allocator > &) (__functor=Unhandled dwarf expression opcode 0xf3 ) at /opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/functional:2071 #8 0x00007f100fb01506 in process::internal::run&)>, std::basic_string, std::allocator >&>(const std::vector, std::allocator >&)>, std::allocator, std::allocator >&)> > > &) (callbacks=std::vector of length 1, capacity 1 = {...}) at ../3rdparty/libprocess/include/process/future.hpp:420 #9 0x00007f100fcc701b in process::Future::fail (this=0x7f0ffc185ca8, _message="Unknown container: c0ab6cd3-fe4f-49bd-8dd6-32b388fcfab2") at ../3rdparty/libprocess/include/process/future.hpp:1406 #10 0x00007f100fccfbde in fail (f=Unhandled dwarf expression opcode 0xf3 ) at ../3rdparty/libprocess/include/process/future.hpp:649 #11 process::internal::thenf(const std::function(const mesos::ResourceStatistics&)> &, const std::shared_ptr > &, const process::Future &) (f=Unhandled dwarf expression opcode 0xf3 ) at ../3rdparty/libprocess/include/process/future.hpp:1193 #12 0x00007f100fd64bee in operator() (callbacks=std::vector of length 1, capacity 1 = {...}) at /opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/functional:2464 #13 process::internal::run&)>, process::Future&>(const std::vector&)>, std::allocator&)> > > &) (callbacks=std::vector of length 1, capacity 1 = {...}) at ../3rdparty/libprocess/include/process/future.hpp:420 #14 0x00007f100fd656dd in process::Future::fail (this=0x7f0ff8046230, _message="Unknown container: c0ab6cd3-fe4f-49bd-8dd6-32b388fcfab2") at ../3rdparty/libprocess/include/process/future.hpp:1407 #15 0x00007f100fd6c332 in onFailed (this=Unhandled dwarf expression opcode 0xf3 ) at ../3rdparty/libprocess/include/process/future.hpp:1121 #16 onFailed::*)(const std::basic_string&)>(process::Future, std::_Placeholder<1>)>, bool> (this=Unhandled dwarf expression opcode 0xf3 ) at ../3rdparty/libprocess/include/process/future.hpp:221 #17 onFailed::*)(const std::basic_string&)>(process::Future, std::_Placeholder<1>)> > (this=Unhandled dwarf expression opcode 0xf3 ) at ../3rdparty/libprocess/include/process/future.hpp:270 #18 process::Promise::associate (this=Unhandled dwarf expression opcode 0xf3 ) at ../3rdparty/libprocess/include/process/future.hpp:635 #19 0x00007f100fe2777e in operator() (__functor=Unhandled dwarf expression opcode 0xf3 ) at ../3rdparty/libprocess/include/process/dispatch.hpp:239 #20 std::_Function_handler&, process::Future (T::*)(P0), A0) [with R = mesos::ResourceStatistics; T = mesos::internal::slave::MesosContainerizerProcess; P0 = const mesos::ContainerID&; A0 = mesos::ContainerID]::__lambda21>::_M_invoke(const std::_Any_data &, process::ProcessBase *) (__functor=Unhandled dwarf expression opcode 0xf3 ) at /opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/functional:2071 #21 0x00007f101015561a in process::ProcessManager::resume (this=0xc24d20, process=0x7f0ffc0169b0) at src/process.cpp:2172 #22 0x00007f10101558dc in process::schedule (arg=Unhandled dwarf expression opcode 0xf3 ) at src/process.cpp:602 #23 0x00007f100f17983d in start_thread () from /lib64/libpthread.so.0 #24 0x00007f100e96bfcd in clone () from /lib64/libc.so.6 {noformat}
Story points: 1