You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by "Jiang Yan Xu (JIRA)" <ji...@apache.org> on 2013/04/30 21:00:17 UTC

[jira] [Commented] (MESOS-393) Forking at an unlucky time on OS X can cause the C++ library to deadlock.

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

Jiang Yan Xu commented on MESOS-393:
------------------------------------

It is still deadlocking on the latest trunk on OS X:

Attaching to process 7949.
Reading symbols for shared libraries . done
Reading symbols for shared libraries .................................................................................. done
Reading symbols for shared libraries + done
0x00007fff89987122 in __psynch_mutexwait ()
(gdb) where
#0  0x00007fff89987122 in __psynch_mutexwait ()
#1  0x00007fff883e6dfd in pthread_mutex_lock ()
#2  0x00007fff8362c442 in std::locale::locale ()
#3  0x00007fff8364e89f in std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream ()
#4  0x0000000105921726 in __gnu_cxx::new_allocator<std::pair<std::string const, Option<std::string> > >::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:42
#5  0x0000000105921726 in UUID::toString (this=0x107444610) at uuid.hpp:402
#6  0x00000001065691fb in __gnu_cxx::new_allocator<std::pair<std::string const, Option<std::string> > >::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:407
#7  0x00000001065691fb in mesos::internal::launcher::ExecutorLauncher::setupEnvironment (this=0x1074445a8) at launcher.cpp:402
#8  0x00000001065684d3 in __gnu_cxx::new_allocator<std::pair<std::string const, Option<std::string> > >::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:423
#9  0x00000001065684d3 in mesos::internal::launcher::ExecutorLauncher::setupEnvironmentForLauncherMain (this=0x1074444f0) at launcher.cpp:402
#10 0x0000000106541eb5 in __gnu_cxx::new_allocator<std::pair<std::string const, Option<std::string> > >::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:214
#11 0x0000000106541eb5 in mesos::internal::slave::ProcessIsolator::launchExecutor (this=0x107444d90, slaveId=@0x107444d90, frameworkId=@0x107444d90, frameworkInfo=@0x107444d90, executorInfo=@0x7fdbd4106768, uuid=@0x107444d90, directory=@0x7fdbd41067f8, resources=@0x7fdbd4106800) at process_isolator.cpp:402
#12 0x000000010650fefe in __gnu_cxx::new_allocator<std::pair<std::string const, Option<std::string> > >::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:664
#13 0x000000010650fefe in std::tr1::_Function_handler<void ()(mesos::internal::slave::Isolator*), std::tr1::_Bind<std::tr1::_Mem_fn<void (mesos::internal::slave::Isolator::*)(mesos::SlaveID const&, mesos::FrameworkID const&, mesos::FrameworkInfo const&, mesos::ExecutorInfo const&, UUID const&, std::string const&, mesos::internal::Resources const&)> ()(std::tr1::_Placeholder<1>, mesos::SlaveID, mesos::FrameworkID, mesos::FrameworkInfo, mesos::ExecutorInfo, UUID, std::string, mesos::internal::Resources)> >::_M_invoke (__functor=@0x7fdbd2c3c460, __a1=0x7fdbd41066e8) at functional:402
#14 0x00000001059a2e60 in std::tr1::__shared_ptr<std::tr1::function<void ()(mesos::internal::slave::Isolator*)>, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr () at boost_shared_ptr.h:133
#15 0x00000001059a2e60 in std::tr1::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count () at /usr/include/c++/4.2.1/tr1/boost_shared_ptr.h:974
#16 0x00000001059a2e60 in __gnu_cxx::new_allocator<testing::Expectation>::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:504
#17 0x00000001059a2e60 in __gnu_cxx::new_allocator<std::pair<std::string const, Option<std::string> > >::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:402
#18 0x00000001059a2e60 in std::tr1::_Bind<void (*()(std::tr1::_Placeholder<1>, std::tr1::shared_ptr<std::tr1::function<void ()(mesos::internal::slave::Isolator*)> >))(process::ProcessBase*, std::tr1::shared_ptr<std::tr1::function<void ()(mesos::internal::slave::Isolator*)> >)>::operator()<process::ProcessBase*> (this=0x7fdbd2c3c460, __u1=@0x7fdbd41066e8) at boost_shared_ptr.h:402
#19 0x00000001059a2958 in __gnu_cxx::new_allocator<testing::Expectation>::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:502
#20 0x00000001059a2958 in __gnu_cxx::new_allocator<std::pair<std::string const, Option<std::string> > >::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:402
#21 0x00000001059a2958 in std::tr1::_Function_handler<void ()(process::ProcessBase*), std::tr1::_Bind<void (*()(std::tr1::_Placeholder<1>, std::tr1::shared_ptr<std::tr1::function<void ()(mesos::internal::slave::Isolator*)> >))(process::ProcessBase*, std::tr1::shared_ptr<std::tr1::function<void ()(mesos::internal::slave::Isolator*)> >)> >::_M_invoke (__a1=0x7fdbd2c3c5b8, __functor=@0x7fdbd2c3c460) at functional_iterate.h:402
#22 0x0000000106666db0 in __gnu_cxx::new_allocator<std::pair<std::string const, process::ProcessBase::Asset> >::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:2432
#23 0x0000000106666db0 in process::ProcessManager::resume (this=0x107444ee0, process=0x7fdbd2c3c5b8) at process.cpp:402
#24 0x00000001066677a8 in __gnu_cxx::new_allocator<std::pair<std::string const, process::ProcessBase::Asset> >::destroy () at /usr/include/c++/4.2.1/ext/new_allocator.h:1167
#25 0x00000001066677a8 in process::schedule (arg=0x7fdbd2c35780) at process.cpp:402
#26 0x00007fff883e17a2 in _pthread_start ()
#27 0x00007fff883ce1e1 in thread_start ()
                
> Forking at an unlucky time on OS X can cause the C++ library to deadlock.
> -------------------------------------------------------------------------
>
>                 Key: MESOS-393
>                 URL: https://issues.apache.org/jira/browse/MESOS-393
>             Project: Mesos
>          Issue Type: Bug
>            Reporter: Benjamin Hindman
>
> Thread 1 (process 91631):
> #0  0x00007fff85893bf2 in __psynch_mutexwait ()
> #1  0x00007fff8711a1a1 in pthread_mutex_lock ()
> #2  0x00007fff8f6d5af5 in __gnu_cxx::__mutex::lock ()
> #3  0x00007fff8f6dc903 in std::locale::locale ()
> #4  0x00007fff8f6e6582 in std::basic_ios<char, std::char_traits<char> >::basic_ios ()
> #5  0x00007fff8f6febe4 in std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream ()
> #6  0x00000001014216d5 in process::UPID::operator std::string () at stl_deque.h:441
> #7  0x000000010125130c in mesos::internal::slave::ProcessBasedIsolationModule::createExecutorLauncher (this=0x7fc19a5062c0, slaveId=@0x7fc19a536438, frameworkId=@0x7fc19a536458, frameworkInfo=@0x7fc19a536478, executorInfo=@0x2060, directory=@0x10233f6b0) at process_based_isolation_module.cpp:293
> #8  0x000000010125200c in mesos::internal::slave::ProcessBasedIsolationModule::launchExecutor (this=0x10233fbc0, slaveId=@0x10233fbc0, frameworkId=@0x10233fbc0, frameworkInfo=@0x10233fbc0, executorInfo=@0x10233fbc0, _=@0x7fc19a536548, directory=@0x7fc19a536548, resources=@0x7fc19a536550, path=@0x7fc19a536588) at process_based_isolation_module.cpp:213
> #9  0x000000010122597c in std::tr1::_Function_handler<void ()(mesos::internal::slave::IsolationModule*), std::tr1::_Bind<std::tr1::_Mem_fn<void (mesos::internal::slave::IsolationModule::*)(mesos::SlaveID const&, mesos::FrameworkID const&, mesos::FrameworkInfo const&, mesos::ExecutorInfo const&, UUID const&, std::string const&, mesos::internal::Resources const&, Option<std::string> const&)> ()(std::tr1::_Placeholder<1>, mesos::SlaveID, mesos::FrameworkID, mesos::FrameworkInfo, mesos::ExecutorInfo, UUID, std::string, mesos::internal::Resources, Option<std::string>)> >::_M_invoke (__functor=@0x10233f670, __a1=0x7fc19a536438) at functional_iterate.h:214
> #10 0x000000010122b466 in std::tr1::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count () at boost_shared_ptr.h:133
> #11 0x000000010122b466 in std::tr1::__shared_ptr<std::tr1::function<void ()(mesos::internal::slave::IsolationModule*)>, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr () at /usr/include/c++/4.2.1/tr1/boost_shared_ptr.h:504
> #12 0x000000010122b466 in std::tr1::_Bind<void (*()(std::tr1::_Placeholder<1>, std::tr1::shared_ptr<std::tr1::function<void ()(mesos::internal::slave::IsolationModule*)> >))(process::ProcessBase*, std::tr1::shared_ptr<std::tr1::function<void ()(mesos::internal::slave::IsolationModule*)> >)>::operator()<process::ProcessBase*> (this=0x10233f670, __u1=@0x7fc19a536438) at boost_shared_ptr.h:974
> #13 0x0000000101229f28 in std::tr1::_Function_handler<void ()(process::ProcessBase*), std::tr1::_Bind<void (*()(std::tr1::_Placeholder<1>, std::tr1::shared_ptr<std::tr1::function<void ()(mesos::internal::slave::IsolationModule*)> >))(process::ProcessBase*, std::tr1::shared_ptr<std::tr1::function<void ()(mesos::internal::slave::IsolationModule*)> >)> >::_M_invoke (__a1=0x7fc19a5063f0, __functor=@0x10233f670) at functional_iterate.h:502
> #14 0x00000001013e2d4a in std::tr1::function<void ()(process::ProcessBase*)>::operator() () at stl_deque.h:441
> #15 0x0000000101360ccc in process::ProcessBase::visit () at boost_shared_ptr.h:152
> #16 0x00000001013895df in process::DispatchEvent::visit () at boost_shared_ptr.h:152
> #17 0x0000000101374ec0 in process::ProcessManager::resume () at boost_shared_ptr.h:152
> #18 0x0000000101375f06 in process::schedule () at boost_shared_ptr.h:152
> #19 0x00007fff8711b8bf in _pthread_start ()
> #20 0x00007fff8711eb75 in thread_start ()

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira