[
https://issues.apache.org/jira/browse/MESOS-8970?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benjamin Mahler reassigned MESOS-8970:
--------------------------------------
Resolution: Fixed
Assignee: Benno Evers (was: Benjamin Mahler)
Fix Version/s: 1.7.0
{noformat}
commit fa41ca7dcb60c6fcac8afc6ec35f36a69b90b65b
Author: Benno Evers <[email protected]>
Date: Thu May 31 10:07:31 2018 -0700
Fixed a crash in libprocess due to order-of-evaluation bug.
Up to C++17, the only ordering constraint on the evaluation of
expressions between synchronization points was that function
arguments shall be evaluated before calling a function.
This could lead to the situation where `std::move(futures)` could be
called before `await(futures.values())`, leading to a function call
on a moved-from object and thus undefined behaviour.
Review: https://reviews.apache.org/r/67401/
{noformat}
> Tests relying on metrics segfault on some Linux distros.
> --------------------------------------------------------
>
> Key: MESOS-8970
> URL: https://issues.apache.org/jira/browse/MESOS-8970
> Project: Mesos
> Issue Type: Bug
> Affects Versions: 1.7.0
> Reporter: Alexander Rukletsov
> Assignee: Benno Evers
> Priority: Blocker
> Labels: libprocess
> Fix For: 1.7.0
>
>
> [Recent changes to
> metrics|https://github.com/apache/mesos/compare/6ae44980c47ed99216edc81c8d4b3ad1255cd711...0f6ce843b506262acdccba50e8686ca5798aa633]
> in libprocess likely trigger some UB. For example,
> {noformat}
> 07:12:34 [ RUN ] FetcherTest.CustomOutputFileSubdirectory
> 07:12:34 I0531 07:12:34.379432 16126 fetcher.cpp:369] Starting to fetch URIs
> for container: 43a2297e-54ea-46d5-89bc-df3813dde6de, directory: /tmp/018jUp
> 07:12:34 I0531 07:12:34.380430 16126 fetcher.cpp:875] Fetching URIs using
> command
> '/home/centos/workspace/mesos/Mesos_CI-build/FLAG/CMake/label/mesos-ec2-centos-7/mesos/build/src/mesos-fetcher'
> 07:12:34 I0531 07:12:34.580570 16124 process.cpp:3583] Handling HTTP event
> for process 'metrics' with path: '/metrics/snapshot'
> 07:12:34 F0531 07:12:34.582866 16127 metrics.cpp:219] CHECK_SOME(timeout): is
> NONE
> 07:12:34 *** Check failure stack trace: ***
> 07:12:34 @ 0x7f81f70f763d google::LogMessage::Fail()
> 07:12:34 @ 0x7f81f70f93bd google::LogMessage::SendToLog()
> 07:12:34 @ 0x7f81f70f7223 google::LogMessage::Flush()
> 07:12:34 @ 0x7f81f70f9e5e google::LogMessageFatal::~LogMessageFatal()
> 07:12:34 @ 0x11d0322 _CheckFatal::~_CheckFatal()
> 07:12:34 @ 0x7f81f8a7e153
> process::metrics::internal::MetricsProcess::__snapshot()
> 07:12:34 @ 0x7f81f8a8be88
> _ZZN7process8dispatchISt3mapISsdSt4lessISsESaISt4pairIKSsdEEENS_7metrics8internal14MetricsProcessERK6OptionI8DurationEO7hashmapISsNS_6FutureIdEESt4hashISsESt8equal_toISsEEOSH_ISsSC_INS_10StatisticsIdEEESL_SN_ESG_SO_ST_EENSI_IT_EERKNS_3PIDIT0_EEMSY_FSW_T1_T2_T3_EOT4_OT5_OT6_ENKUlSt10unique_ptrINS_7PromiseIS8_EESt14default_deleteIS1F_EEOSE_SP_SU_PNS_11ProcessBaseEE_clES1I_S1J_SP_SU_S1L_
> 07:12:34 @ 0x7f81f8ac5bea
> _ZN5cpp176invokeIZN7process8dispatchISt3mapISsdSt4lessISsESaISt4pairIKSsdEEENS1_7metrics8internal14MetricsProcessERK6OptionI8DurationEO7hashmapISsNS1_6FutureIdEESt4hashISsESt8equal_toISsEEOSJ_ISsSE_INS1_10StatisticsIdEEESN_SP_ESI_SQ_SV_EENSK_IT_EERKNS1_3PIDIT0_EEMS10_FSY_T1_T2_T3_EOT4_OT5_OT6_EUlSt10unique_ptrINS1_7PromiseISA_EESt14default_deleteIS1H_EEOSG_SR_SW_PNS1_11ProcessBaseEE_JS1K_SG_SQ_SV_S1N_EEEDTclcl7forwardISX_Efp_Espcl7forwardIT0_Efp0_EEEOSX_DpOS1P_
> 07:12:34 @ 0x7f81f8ac2a34
> _ZN6lambda8internal7PartialIZN7process8dispatchISt3mapISsdSt4lessISsESaISt4pairIKSsdEEENS2_7metrics8internal14MetricsProcessERK6OptionI8DurationEO7hashmapISsNS2_6FutureIdEESt4hashISsESt8equal_toISsEEOSK_ISsSF_INS2_10StatisticsIdEEESO_SQ_ESJ_SR_SW_EENSL_IT_EERKNS2_3PIDIT0_EEMS11_FSZ_T1_T2_T3_EOT4_OT5_OT6_EUlSt10unique_ptrINS2_7PromiseISB_EESt14default_deleteIS1I_EEOSH_SS_SX_PNS2_11ProcessBaseEE_IS1L_SH_SR_SW_St12_PlaceholderILi1EEEE13invoke_expandIS1P_St5tupleIIS1L_SH_SR_SW_S1R_EES1U_IIOS1O_EEILm0ELm1ELm2ELm3ELm4EEEEDTcl6invokecl7forwardISY_Efp_Espcl6expandcl3getIXT2_EEcl7forwardIS11_Efp0_EEcl7forwardIS15_Efp2_EEEEOSY_OS11_N5cpp1416integer_sequenceImIXspT2_EEEEOS15_
> 07:12:34 @ 0x7f81f8abee6e
> _ZNO6lambda8internal7PartialIZN7process8dispatchISt3mapISsdSt4lessISsESaISt4pairIKSsdEEENS2_7metrics8internal14MetricsProcessERK6OptionI8DurationEO7hashmapISsNS2_6FutureIdEESt4hashISsESt8equal_toISsEEOSK_ISsSF_INS2_10StatisticsIdEEESO_SQ_ESJ_SR_SW_EENSL_IT_EERKNS2_3PIDIT0_EEMS11_FSZ_T1_T2_T3_EOT4_OT5_OT6_EUlSt10unique_ptrINS2_7PromiseISB_EESt14default_deleteIS1I_EEOSH_SS_SX_PNS2_11ProcessBaseEE_JS1L_SH_SR_SW_St12_PlaceholderILi1EEEEclIJS1O_EEEDTcl13invoke_expandcl4movedtdefpT1fEcl4movedtdefpT10bound_argsEcvN5cpp1416integer_sequenceImJLm0ELm1ELm2ELm3ELm4EEEE_Ecl16forward_as_tuplespcl7forwardIT_Efp_EEEEDpOS1X_
> 07:12:34 @ 0x7f81f8abca67
> _ZN5cpp176invokeIN6lambda8internal7PartialIZN7process8dispatchISt3mapISsdSt4lessISsESaISt4pairIKSsdEEENS4_7metrics8internal14MetricsProcessERK6OptionI8DurationEO7hashmapISsNS4_6FutureIdEESt4hashISsESt8equal_toISsEEOSM_ISsSH_INS4_10StatisticsIdEEESQ_SS_ESL_ST_SY_EENSN_IT_EERKNS4_3PIDIT0_EEMS13_FS11_T1_T2_T3_EOT4_OT5_OT6_EUlSt10unique_ptrINS4_7PromiseISD_EESt14default_deleteIS1K_EEOSJ_SU_SZ_PNS4_11ProcessBaseEE_JS1N_SJ_ST_SY_St12_PlaceholderILi1EEEEEJS1Q_EEEDTclcl7forwardIS10_Efp_Espcl7forwardIT0_Efp0_EEEOS10_DpOS1V_
> 07:12:34 @ 0x7f81f8abb625
> _ZN6lambda8internal6InvokeIvEclINS0_7PartialIZN7process8dispatchISt3mapISsdSt4lessISsESaISt4pairIKSsdEEENS5_7metrics8internal14MetricsProcessERK6OptionI8DurationEO7hashmapISsNS5_6FutureIdEESt4hashISsESt8equal_toISsEEOSN_ISsSI_INS5_10StatisticsIdEEESR_ST_ESM_SU_SZ_EENSO_IT_EERKNS5_3PIDIT0_EEMS14_FS12_T1_T2_T3_EOT4_OT5_OT6_EUlSt10unique_ptrINS5_7PromiseISE_EESt14default_deleteIS1L_EEOSK_SV_S10_PNS5_11ProcessBaseEE_IS1O_SK_SU_SZ_St12_PlaceholderILi1EEEEEIS1R_EEEvOS11_DpOT0_
> 07:12:34 @ 0x7f81f8aba5fe
> _ZNO6lambda12CallableOnceIFvPN7process11ProcessBaseEEE10CallableFnINS_8internal7PartialIZNS1_8dispatchISt3mapISsdSt4lessISsESaISt4pairIKSsdEEENS1_7metrics8internal14MetricsProcessERK6OptionI8DurationEO7hashmapISsNS1_6FutureIdEESt4hashISsESt8equal_toISsEEOSQ_ISsSL_INS1_10StatisticsIdEEESU_SW_ESP_SX_S12_EENSR_IT_EERKNS1_3PIDIT0_EEMS17_FS15_T1_T2_T3_EOT4_OT5_OT6_EUlSt10unique_ptrINS1_7PromiseISH_EESt14default_deleteIS1O_EEOSN_SY_S13_S3_E_IS1R_SN_SX_S12_St12_PlaceholderILi1EEEEEEclEOS3_
> 07:12:34 @ 0x7f81f8b4a940
> _ZNO6lambda12CallableOnceIFvPN7process11ProcessBaseEEEclES3_
> 07:12:34 @ 0x7f81f8b0b9fa process::ProcessBase::consume()
> 07:12:34 @ 0x7f81f8b2c5f4
> _ZNO7process13DispatchEvent7consumeEPNS_13EventConsumerE
> 07:12:34 @ 0x11eca18 process::ProcessBase::serve()
> 07:12:34 @ 0x7f81f8b089a2 process::ProcessManager::resume()
> 07:12:34 @ 0x7f81f8b04d88
> _ZZN7process14ProcessManager12init_threadsEvENKUlvE_clEv
> 07:12:34 @ 0x7f81f8b25ab8
> _ZNSt12_Bind_simpleIFZN7process14ProcessManager12init_threadsEvEUlvE_vEE9_M_invokeIJEEEvSt12_Index_tupleIJXspT_EEE
> 07:12:34 @ 0x7f81f8b24e42
> _ZNSt12_Bind_simpleIFZN7process14ProcessManager12init_threadsEvEUlvE_vEEclEv
> 07:12:34 @ 0x7f81f8b24002
> _ZNSt6thread5_ImplISt12_Bind_simpleIFZN7process14ProcessManager12init_threadsEvEUlvE_vEEE6_M_runEv
> 07:12:34 @ 0x7f81f8c4c020 execute_native_thread_routine
> 07:12:34 @ 0x7f81f6ed7e25 start_thread
> 07:12:34 @ 0x7f81f272334d __clone
> 07:12:34 /var/tmp/sclWpXuJ4: line 8: 16119 Aborted 'env'
> 'GTEST_FILTER=*' 'GLOG_v=1'
> 'PATH=/home/centos/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/rh/sclo-git212/root/usr/bin:/opt/rh/devtoolset-4/root/usr/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin'
> 'timeout' '60m' './src/mesos-tests' '--verbose'
> '--gtest_output=xml:../Mesos_test_results.xml'
> {noformat}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)