[ 
https://issues.apache.org/jira/browse/MESOS-8970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16496673#comment-16496673
 ] 

Alexander Rukletsov commented on MESOS-8970:
--------------------------------------------

The following change to {{3rdparty/libprocess/src/metrics/metrics.cpp}} seems 
to fix the issue:
{noformat}
   Future<Nothing> timedout =
     after(timeout.getOrElse(Duration::max()));
 
+  std::set<Future<Nothing>> fset{
+    timedout,
+    await(futures.values()).then([]{ return Nothing(); }) };
+
   // Return the response once it finishes or we time out.
-  return select<Nothing>({
-      timedout,
-      await(futures.values()).then([]{ return Nothing(); }) })
+  return select<Nothing>(fset)
     .onAny([=]() mutable { timedout.discard(); }) // Don't accumulate timers.
     .then(defer(self(),
                 &Self::__snapshot,
{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: Benjamin Mahler
>            Priority: Blocker
>              Labels: libprocess
>
> [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)

Reply via email to