[ 
https://issues.apache.org/jira/browse/MESOS-4029?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Mahler updated MESOS-4029:
-----------------------------------
    Shepherd: Benjamin Mahler
    Assignee: Anand Mazumdar
     Summary: ContentType/SchedulerTest is flaky.  (was: 
ContentType/SchedulerTest seems flaky.)

Took a look. For the traces with the mock expectation crashing (traces 
containing UntypedInvokeWith), the issue appears to be that our stack object 
dependencies in the tests are not safely ordered.

Specifically, we pass a pointer of the {{Queue<Events>}} 
([here|https://github.com/apache/mesos/blob/0.26.0-rc2/src/tests/scheduler_tests.cpp#L147])
 into the expectations on {{Callbacks}} above. During destruction of the test, 
the {{Mesos}} class will destruct **after** the {{Queue<Events>}} is already 
destructed. If a non-HEARTBEAT event arrives in this window, the expectation 
will try to dereference the destructed {{Queue<Events>}} object.

> ContentType/SchedulerTest is flaky.
> -----------------------------------
>
>                 Key: MESOS-4029
>                 URL: https://issues.apache.org/jira/browse/MESOS-4029
>             Project: Mesos
>          Issue Type: Bug
>    Affects Versions: 0.26.0
>            Reporter: Till Toenshoff
>            Assignee: Anand Mazumdar
>              Labels: flaky, flaky-test
>
> SSL build, [Ubuntu 
> 14.04|https://github.com/tillt/mesos-vagrant-ci/blob/master/ubuntu14/setup.sh],
>  non-root test run.
> {noformat}
> [----------] 22 tests from ContentType/SchedulerTest
> [ RUN      ] ContentType/SchedulerTest.Subscribe/0
> [       OK ] ContentType/SchedulerTest.Subscribe/0 (48 ms)
> *** Aborted at 1448928007 (unix time) try "date -d @1448928007" if you are 
> using GNU date ***
> [ RUN      ] ContentType/SchedulerTest.Subscribe/1
> PC: @          0x1451b8e 
> testing::internal::UntypedFunctionMockerBase::UntypedInvokeWith()
> *** SIGSEGV (@0x100000030) received by PID 21320 (TID 0x2b549e5d4700) from 
> PID 48; stack trace: ***
>     @     0x2b54c95940b7 os::Linux::chained_handler()
>     @     0x2b54c9598219 JVM_handle_linux_signal
>     @     0x2b5496300340 (unknown)
>     @          0x1451b8e 
> testing::internal::UntypedFunctionMockerBase::UntypedInvokeWith()
>     @           0xe2ea6d 
> _ZN7testing8internal18FunctionMockerBaseIFvRKSt5queueIN5mesos2v19scheduler5EventESt5dequeIS6_SaIS6_EEEEE10InvokeWithERKSt5tupleIJSC_EE
>     @           0xe2b1bc testing::internal::FunctionMocker<>::Invoke()
>     @          0x1118aed 
> mesos::internal::tests::SchedulerTest::Callbacks::received()
>     @          0x111c453 
> _ZNKSt7_Mem_fnIMN5mesos8internal5tests13SchedulerTest9CallbacksEFvRKSt5queueINS0_2v19scheduler5EventESt5dequeIS8_SaIS8_EEEEEclIJSE_EvEEvRS4_DpOT_
>     @          0x111c001 
> _ZNSt5_BindIFSt7_Mem_fnIMN5mesos8internal5tests13SchedulerTest9CallbacksEFvRKSt5queueINS1_2v19scheduler5EventESt5dequeIS9_SaIS9_EEEEESt17reference_wrapperIS5_ESt12_PlaceholderILi1EEEE6__callIvJSF_EJLm0ELm1EEEET_OSt5tupleIJDpT0_EESt12_Index_tupleIJXspT1_EEE
>     @          0x111b90d 
> _ZNSt5_BindIFSt7_Mem_fnIMN5mesos8internal5tests13SchedulerTest9CallbacksEFvRKSt5queueINS1_2v19scheduler5EventESt5dequeIS9_SaIS9_EEEEESt17reference_wrapperIS5_ESt12_PlaceholderILi1EEEEclIJSF_EvEET0_DpOT_
>     @          0x111ae09 std::_Function_handler<>::_M_invoke()
>     @     0x2b5493c6da09 std::function<>::operator()()
>     @     0x2b5493c688ee process::AsyncExecutorProcess::execute<>()
>     @     0x2b5493c6db2a 
> _ZZN7process8dispatchI7NothingNS_20AsyncExecutorProcessERKSt8functionIFvRKSt5queueIN5mesos2v19scheduler5EventESt5dequeIS8_SaIS8_EEEEESC_PvSG_SC_SJ_EENS_6FutureIT_EERKNS_3PIDIT0_EEMSO_FSL_T1_T2_T3_ET4_T5_T6_ENKUlPNS_11ProcessBaseEE_clES11_
>     @     0x2b5493c765a4 
> _ZNSt17_Function_handlerIFvPN7process11ProcessBaseEEZNS0_8dispatchI7NothingNS0_20AsyncExecutorProcessERKSt8functionIFvRKSt5queueIN5mesos2v19scheduler5EventESt5dequeISC_SaISC_EEEEESG_PvSK_SG_SN_EENS0_6FutureIT_EERKNS0_3PIDIT0_EEMSS_FSP_T1_T2_T3_ET4_T5_T6_EUlS2_E_E9_M_invokeERKSt9_Any_dataS2_
>     @     0x2b54946b1201 std::function<>::operator()()
>     @     0x2b549469960f process::ProcessBase::visit()
>     @     0x2b549469d480 process::DispatchEvent::visit()
>     @           0x9dc0ba process::ProcessBase::serve()
>     @     0x2b54946958cc process::ProcessManager::resume()
>     @     0x2b5494692a9c 
> _ZZN7process14ProcessManager12init_threadsEvENKUlRKSt11atomic_boolE_clES3_
>     @     0x2b549469ccac 
> _ZNSt5_BindIFZN7process14ProcessManager12init_threadsEvEUlRKSt11atomic_boolE_St17reference_wrapperIS3_EEE6__callIvIEILm0EEEET_OSt5tupleIIDpT0_EESt12_Index_tupleIIXspT1_EEE
>     @     0x2b549469cc5c 
> _ZNSt5_BindIFZN7process14ProcessManager12init_threadsEvEUlRKSt11atomic_boolE_St17reference_wrapperIS3_EEEclIIEvEET0_DpOT_
>     @     0x2b549469cbee 
> _ZNSt12_Bind_simpleIFSt5_BindIFZN7process14ProcessManager12init_threadsEvEUlRKSt11atomic_boolE_St17reference_wrapperIS4_EEEvEE9_M_invokeIIEEEvSt12_Index_tupleIIXspT_EEE
>     @     0x2b549469cb45 
> _ZNSt12_Bind_simpleIFSt5_BindIFZN7process14ProcessManager12init_threadsEvEUlRKSt11atomic_boolE_St17reference_wrapperIS4_EEEvEEclEv
>     @     0x2b549469cade 
> _ZNSt6thread5_ImplISt12_Bind_simpleIFSt5_BindIFZN7process14ProcessManager12init_threadsEvEUlRKSt11atomic_boolE_St17reference_wrapperIS6_EEEvEEE6_M_runEv
>     @     0x2b5495b81a40 (unknown)
>     @     0x2b54962f8182 start_thread
>     @     0x2b549660847d (unknown)
> make[3]: *** [check-local] Segmentation fault
> make[3]: Leaving directory `/home/vagrant/mesos/build/src'
> make[2]: *** [check-am] Error 2
> make[2]: Leaving directory `/home/vagrant/mesos/build/src'
> make[1]: *** [check] Error 2
> make[1]: Leaving directory `/home/vagrant/mesos/build/src'
> make: *** [check-recursive] Error 1
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to