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:53:00 UTC

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

Andrei Sekretenko created MESOS-10201:
-----------------------------------------

             Summary: 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


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)