You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Andrei Sekretenko (Jira)" <ji...@apache.org> on 2020/11/23 20:54:00 UTC

[jira] [Commented] (MESOS-10201) Leaving libprocess running after main() exit may make a program crash when global mutexes in glog are destroyed.

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

Andrei Sekretenko commented on MESOS-10201:
-------------------------------------------

Note that mesos-io-switchboard might be the most affected executable in Mesos.

> Leaving libprocess running after main() exit may make a program crash when global mutexes in glog are destroyed.
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: MESOS-10201
>                 URL: https://issues.apache.org/jira/browse/MESOS-10201
>             Project: Mesos
>          Issue Type: Bug
>            Reporter: Andrei Sekretenko
>            Priority: Major
>
> Example stack pair #1:
> {noformat}
>                 Stack trace of thread 5894:
>                 #0  0x00007f8c9276c387 raise (libc.so.6)
>                 #1  0x00007f8c9276da78 abort (libc.so.6)
>                 #2  0x00007f8c93259909 _ZN6google11InitVLOG3__EPPiS0_PKci (libglog.so.0)
>                 #3  0x00007f8c93776ab4 _ZN7process14ProcessManager7deliverERKNS_4UPIDEPNS_5EventEPNS_11ProcessBaseE (libprocess.so)
>                 #4  0x00007f8c9377e9ee _ZN7process8internal8dispatchERKNS_4UPIDESt10unique_ptrIN6lambda12CallableOnceIFvPNS_11ProcessBaseEEEESt14default_deleteISA_EERK6OptionIPKSt9type_infoE (libprocess.so)
>                 #5  0x00007f8c9575345d _ZN7process8internal8DispatchIvEclIN6lambda12CallableOnceIFvvEEEEEvRKNS_4UPIDEOT_ (libmesos.so.0)
>                 #6  0x00007f8c959f81a8 _ZNO6lambda12CallableOnceIFvRKN7process6FutureINS1_7network8internal6SocketINS3_4unix7AddressEEEEEEE10CallableFnINS_8internal7PartialIZNOS1_9_DeferredIZN5mesos8internal5slave26IOSwitchboardServerProcess10acceptLoopEvEUlSB_E_EcvNS0_IFvT_EEEISB_EEvEUlOSM_SB_E_ISM_St12_PlaceholderILi1EEEEEEclESB_ (libmesos.so.0)
>                 #7  0x00007f8c95a26089 _ZN7process8internal3runIN6lambda12CallableOnceIFvRKNS_6FutureINS_7network8internal6SocketINS5_4unix7AddressEEEEEEEEIRSB_EEEvOSt6vectorIT_SaISI_EEDpOT0_ (libmesos.so.0)
>                 #8  0x00007f8c95a26573 _ZN7process7PromiseINS_7network8internal6SocketINS1_4unix7AddressEEEE7discardEv (libmesos.so.0)
>                 #9  0x00007f8c95a29356 _ZN7process8internal5thenfISt10shared_ptrINS_7network8internal10SocketImplEENS4_6SocketINS3_4unix7AddressEEEEEvON6lambda12CallableOnceIFNS_6FutureIT0_EERKT_EEESt10unique_ptrINS_7PromiseISE_EESt14default_deleteISO_EERKNSD_ISG_EE (libmesos.so.0)
>                 #10 0x00007f8c95a11bc5 _ZNO6lambda12CallableOnceIFvRKN7process6FutureISt10shared_ptrINS1_7network8internal10SocketImplEEEEEE10CallableFnINS_8internal7PartialIPFvONS0_IFNS2_INS5_6SocketINS4_4unix7AddressEEEEERKS7_EEESt10unique_ptrINS1_7PromiseISJ_EESt14default_deleteISS_EESA_EISO_SV_St12_PlaceholderILi1EEEEEEclESA_ (libmesos.so.0)
>                 #11 0x00007f8c938059b9 _ZN7process8internal3runIN6lambda12CallableOnceIFvRKNS_6FutureISt10shared_ptrINS_7network8internal10SocketImplEEEEEEEJRSA_EEEvOSt6vectorIT_SaISH_EEDpOT0_ (libprocess.so)
>                 #12 0x00007f8c93806603 _ZN7process7PromiseISt10shared_ptrINS_7network8internal10SocketImplEEE7discardEv (libprocess.so)
>                 #13 0x00007f8c93808256 _ZN7process8internal5thenfIsSt10shared_ptrINS_7network8internal10SocketImplEEEEvON6lambda12CallableOnceIFNS_6FutureIT0_EERKT_EEESt10unique_ptrINS_7PromiseISA_EESt14default_deleteISK_EERKNS9_ISC_EE (libprocess.so)
>                 #14 0x00007f8c938044d5 _ZNO6lambda12CallableOnceIFvRKN7process6FutureIsEEEE10CallableFnINS_8internal7PartialIPFvONS0_IFNS2_ISt10shared_ptrINS1_7network8internal10SocketImplEEEERKsEEESt10unique_ptrINS1_7PromiseISF_EESt14default_deleteISO_EES5_EISK_SR_St12_PlaceholderILi1EEEEEEclES5_ (libprocess.so)
>                 #15 0x00007f8c937edc2a _ZN7process7PromiseIsE7discardEv (libprocess.so)
>                 #16 0x00007f8c937eca9e _ZN7process2io8internal12pollCallbackEisPv (libprocess.so)
>                 #17 0x00007f8c8e975978 event_process_active_single_queue (libevent_core-2.1.so.6)
>                 #18 0x00007f8c8e975e5d event_process_active (libevent_core-2.1.so.6)
>                 #19 0x00007f8c8e9765b9 event_base_loop (libevent_core-2.1.so.6)
>                 #20 0x00007f8c937eb97d _ZN7process9EventLoop3runEv (libprocess.so)
>                 #21 0x00007f8c92dcf070 n/a (libstdc++.so.6)
>                 #22 0x00007f8c93028ea5 start_thread (libpthread.so.0)
>                 #23 0x00007f8c928348dd __clone (libc.so.6)
>                 Stack trace of thread 5874:
>                 #0  0x00007f8c970097b5 do_lookup_x (ld-linux-x86-64.so.2)
>                 #1  0x00007f8c9700a08f _dl_lookup_symbol_x (ld-linux-x86-64.so.2)
>                 #2  0x00007f8c9700edde _dl_fixup (ld-linux-x86-64.so.2)
>                 #3  0x00007f8c97016a9a _dl_runtime_resolve_xsavec (ld-linux-x86-64.so.2)
>                 #4  0x00007f8c92d889c8 _ZNSt8ios_base4InitD1Ev (libstdc++.so.6)
>                 #5  0x00007f8c9277005a __cxa_finalize (libc.so.6)
>                 #6  0x00007f8c8f8d6bb3 __do_global_dtors_aux (libprotobuf.so)
>                 #7  0x00007f8c9701007a _dl_fini (ld-linux-x86-64.so.2)
>                 #8  0x00007f8c9276fce9 __run_exit_handlers (libc.so.6)
>                 #9  0x00007f8c9276fd37 exit (libc.so.6)
>                 #10 0x00007f8c9275855c __libc_start_main (libc.so.6)
>                 #11 0x000000000040e909 _start (mesos-io-switchboard)
> {noformat}
> Example stack pair #2:
> {noformat}
> Thread 2 (Thread 0x7faba4c9c700 (LWP 8820)):
> #0  0x00007fabac432a27 in shutdown () from /lib64/libc.so.6
> #1  0x00007fabad3dfb37 in process::network::internal::SocketImpl::shutdown(int) () from /opt/mesosphere/lib/libprocess.so
> #2  0x00007fabad2c4528 in _ZNO6lambda12CallableOnceIFvRKN7process6FutureI7NothingEEEE10CallableFnINS_8internal7PartialIZNKS4_5onAnyIZNS1_4http8internal5serveENS1_7network8internal6SocketINSF_7AddressEEEOSt8functionIFNS2_INSD_8ResponseEEERKNSD_7RequestEEEEUlvE_vEES6_OT_NS4_10LessPreferEEUlOST_S6_E_IST_St12_PlaceholderILi1EEEEEEclES6_ () from /opt/mesosphere/lib/libprocess.so
> #3  0x00007fabaf26f119 in void process::internal::run<lambda::CallableOnce<void (process::Future<Nothing> const&)>, process::Future<Nothing>&>(std::vector<lambda::CallableOnce<void (process::Future<Nothing> const&)>, std::allocator<lambda::CallableOnce<void (process::Future<Nothing> const&)> > >&&, process::Future<Nothing>&) () from /opt/mesosphere/lib/libmesos.so.0
> #4  0x00007fabaf272dc5 in bool process::Future<Nothing>::_set<Nothing const&>(Nothing const&) () from /opt/mesosphere/lib/libmesos.so.0
> ---Type <return> to continue, or q <return> to quit---
> #5  0x00007fabad2d3550 in process::internal::Loop<process::http::internal::receive(process::network::internal::Socket<process::network::Address>, std::function<process::Future<process::http::Response> (process::http::Request const&)>&&, process::Queue<Option<process::http::internal::Item> >)::{lambda()#1}, process::http::internal::receive(process::network::internal::Socket<process::network::Address>, std::function<process::Future<process::http::Response> (process::http::Request const&)>&&, process::Queue<Option<process::http::internal::Item> >)::{lambda(unsigned long)#2}, unsigned long, Nothing>::run(process::Future<unsigned long>) () from /opt/mesosphere/lib/libprocess.so
> #6  0x00007fabad2d52f8 in _ZNO6lambda12CallableOnceIFvvEE10CallableFnINS_8internal7PartialIZN7process8internal4LoopIZNS6_4http8internal7receiveENS6_7network8internal6SocketINSB_7AddressEEEOSt8functionIFNS6_6FutureINS9_8ResponseEEERKNS9_7RequestEEENS6_5QueueI6OptionINSA_4ItemEEEEEUlvE_ZNSA_7receiveESF_SP_SU_EUlmE0_m7NothingE3runENSH_ImEEEUlRKSZ_E2_ISZ_EEEEclEv () from /opt/mesosphere/lib/libprocess.so
> #7  0x00007fabaf26cc74 in _ZNO6lambda12CallableOnceIFvPN7process11ProcessBaseEEE10CallableFnINS_8internal7PartialIZNS1_8internal8DispatchIvEclINS0_IFvvEEEEEvRKNS1_4UPIDEOT_EUlOSE_S3_E_JSE_St12_PlaceholderILi1EEEEEEclEOS3_ ()
>    from /opt/mesosphere/lib/libmesos.so.0
> #8  0x00007fabad36a071 in process::ProcessBase::consume(process::DispatchEvent&&) () from /opt/mesosphere/lib/libprocess.so
> #9  0x00007fabad3825db in process::ProcessManager::resume(process::ProcessBase*) () from /opt/mesosphere/lib/libprocess.so
> #10 0x00007fabad388f96 in std::thread::_Impl<std::_Bind_simple<process::ProcessManager::init_threads()::{lambda()#1} ()> >::_M_run() () from /opt/mesosphere/lib/libprocess.so
> #11 0x00007fabac9cc070 in ?? () from /lib64/libstdc++.so.6
> #12 0x00007fabacc25ea5 in start_thread () from /lib64/libpthread.so.0
> #13 0x00007fabac4318dd in clone () from /lib64/libc.so.6
> Thread 1 (Thread 0x7fabb0e060c0 (LWP 8803)):
> #0  0x00007fabac369387 in raise () from /lib64/libc.so.6
> #1  0x00007fabac36aa78 in abort () from /lib64/libc.so.6
> #2  0x00007fabace53a32 in glog_internal_namespace_::Mutex::~Mutex() () from /opt/mesosphere/lib/libglog.so.0
> #3  0x00007fabac36d05a in __cxa_finalize () from /lib64/libc.so.6
> #4  0x00007fabace44283 in __do_global_dtors_aux () from /opt/mesosphere/lib/libglog.so.0
> #5  0x00007fffe0149c40 in ?? ()
> #6  0x00007fabb0c0d07a in _dl_fini () from /lib64/ld-linux-x86-64.so.2
> Backtrace stopped: frame did not save the PC
> {noformat}
> See the corresponding glog issue (observed in other projects):
> https://github.com/google/glog/issues/547



--
This message was sent by Atlassian Jira
(v8.3.4#803005)