2013-06-24 56 views
2

我正在运行Passenger,当我重新启动Apache时,我得到一个PassengerWatchdog进程,命中100%的CPU。乘客:100%CPU

有什么建议吗?

我在搭载Passenger 4.0.5和Ruby 2.0.0p195的Mac OS X 10.8.4上。

使用Mac OS X的活动监视器这里是我得到的时候我品尝它:

Analysis of sampling PassengerWatchdog (pid 3477) every 1 millisecond 
Process:   PassengerWatchdog [3477] 
Path:   /Users/snowcrash/.rvm/gems/ruby-2.0.0-p195/gems/passenger-4.0.5/agents/PassengerWatchdog 
Load Address: 0x1055ce000 
Identifier:  PassengerWatchdog 
Version:   ??? (???) 
Code Type:  X86-64 (Native) 
Parent Process: httpd [3473] 

Date/Time:  2013-06-24 17:59:52.311 +0100 
OS Version:  Mac OS X 10.8.4 (12E55) 
Report Version: 7 

Call graph: 
    2566 Thread_76210 DispatchQueue_1: com.apple.main-thread (serial) 
    + 2566 start (in libdyld.dylib) + 7 [0x7fff8bfb77e8] 
    + 2566 exit (in libsystem_c.dylib) + 15 [0x7fff957b7f57] 
    +  2566 __cxa_finalize (in libsystem_c.dylib) + 200 [0x7fff957b6307] 
    +  2566 __tcf_12 (in PassengerWatchdog) + 27 [0x1055cf2db] Main.cpp:95 
    +   2566 boost::shared_ptr<Passenger::ServerInstanceDir::Generation>::~shared_ptr() (in PassengerWatchdog) + 37 [0x1055dab89] shared_ptr.hpp:165 
    +   2566 boost::detail::shared_count::~shared_count() (in PassengerWatchdog) + 40 [0x1056171d4] shared_count.hpp:305 
    +    2566 boost::detail::sp_counted_base::release() (in PassengerWatchdog) + 86 [0x1055da0de] sp_counted_base_gcc_x86.hpp:145 
    +    2566 boost::detail::sp_counted_impl_p<Passenger::ServerInstanceDir::Generation>::dispose() (in PassengerWatchdog) + 28 [0x1055def22] sp_counted_impl.hpp:78 
    +     2566 void boost::checked_delete<Passenger::ServerInstanceDir::Generation>(Passenger::ServerInstanceDir::Generation*) (in PassengerWatchdog) + 42 [0x1055fa57a] checked_delete.hpp:34 
    +     2566 Passenger::ServerInstanceDir::Generation::~Generation() (in PassengerWatchdog) + 57 [0x1055fa4db] ServerInstanceDir.h:171 
    +      2566 free (in libsystem_c.dylib) + 199 [0x7fff957888f8] 
    +      2566 szone_free_definite_size (in libsystem_c.dylib) + 1908 [0x7fff9578e7cd] 
    +       2566 tiny_free_list_remove_ptr (in libsystem_c.dylib) + 330 [0x7fff95791d67] 
    +       2566 _sigtramp (in libsystem_c.dylib) + 26 [0x7fff9575d94a] 
    +        2566 Passenger::abortHandler(int, __siginfo*, void*) (in PassengerWatchdog) + 1039 [0x105629cbf] Base.cpp:867 
    +        2566 Passenger::forkAndRedirectToTee(char*) (in PassengerWatchdog) + 63 [0x1056276df] Base.cpp:791 
    +         2566 Passenger::asyncFork() (in PassengerWatchdog) + 13 [0x10561967d] Utils.cpp:972 
    +         2566 fork (in libsystem_c.dylib) + 12 [0x7fff95797411] 
    +          2566 _cthread_fork_prepare (in libsystem_c.dylib) + 98 [0x7fff95777206] 
    +          2566 _malloc_fork_prepare (in libsystem_c.dylib) + 61 [0x7fff95789719] 
    +           2566 szone_force_lock (in libsystem_c.dylib) + 71 [0x7fff95793caa] 
    +           2566 _spin_lock$VARIANT$mp (in libsystem_c.dylib) + 25,53,... [0x7fff9575dfa9,0x7fff9575dfc5,...] 
    2566 Thread_76212 
     2566 thread_start (in libsystem_c.dylib) + 13 [0x7fff9575c1e1] 
     2566 _pthread_start (in libsystem_c.dylib) + 327 [0x7fff9576f7a2] 
      2566 thread_proxy (in PassengerWatchdog) + 141 [0x10563405d] thread.cpp:153 
      2566 boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(boost::function<void()>, boost::shared_ptr<oxt::thread_local_context>), boost::_bi::list2<boost::_bi::value<boost::function<void()> >, boost::_bi::value<boost::shared_ptr<oxt::thread_local_context> > > > >::run() (in PassengerWatchdog) + 37 [0x1055e6979] thread.hpp:78 
       2566 boost::_bi::bind_t<void, void (*)(boost::function<void()>, boost::shared_ptr<oxt::thread_local_context>), boost::_bi::list2<boost::_bi::value<boost::function<void()> >, boost::_bi::value<boost::shared_ptr<oxt::thread_local_context> > > >::operator()() (in PassengerWatchdog) + 92 [0x1055e694e] bind_template.hpp:20 
       2566 void boost::_bi::list2<boost::_bi::value<boost::function<void()> >, boost::_bi::value<boost::shared_ptr<oxt::thread_local_context> > >::operator()<void (*)(boost::function<void()>, boost::shared_ptr<oxt::thread_local_context>), boost::_bi::list0>(boost::_bi::type<void>, void (*&)(boost::function<void()>, boost::shared_ptr<oxt::thread_local_context>), boost::_bi::list0&, int) (in PassengerWatchdog) + 157 [0x1055e680d] bind.hpp:313 
        2566 oxt::thread::thread_main(boost::function<void()>, boost::shared_ptr<oxt::thread_local_context>) (in PassengerWatchdog) + 413 [0x10563b52d] implementation.cpp:331 
        2566 boost::function0<void>::operator()() const (in PassengerWatchdog) + 143 [0x10562372b] function_template.hpp:767 
         2566 boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) (in PassengerWatchdog) + 29 [0x1055e1cdd] function_template.hpp:112 
         2566 ServerInstanceDirToucher::threadMain() (in PassengerWatchdog) + 28 [0x105604e0c] ServerInstanceDirToucher.cpp:38 
          2566 oxt::syscalls::sleep(unsigned int) (in PassengerWatchdog) + 49 [0x105641151] system_calls.cpp:581 
          2566 oxt::syscalls::nanosleep(timespec const*, timespec*) (in PassengerWatchdog) + 113 [0x105640eb1] system_calls.cpp:620 
           2566 nanosleep (in libsystem_c.dylib) + 163 [0x7fff957f9800] 
           2566 __semwait_signal (in libsystem_kernel.dylib) + 10 [0x7fff8d9d5386] 

Total number in stack (recursive counted multiple, when >=5): 

Sort by top of stack, same collapsed (when >= 5): 
     __semwait_signal (in libsystem_kernel.dylib)  2566 
     _spin_lock$VARIANT$mp (in libsystem_c.dylib)  2566 

Binary Images: 
     0x1055ce000 -  0x105678fef +PassengerWatchdog (??? - ???) <F793DD00-F0BC-37AE-BD0D-114012A1CF6D> /Users/snowcrash/.rvm/gems/ruby-2.0.0-p195/gems/passenger-4.0.5/agents/PassengerWatchdog 
    0x7fff651ce000 -  0x7fff6520293f dyld (210.2 - ???) <36CAA36E-72BC-3E48-96D9-B96A2DF77730> /usr/lib/dyld 
    0x7fff8a34e000 -  0x7fff8a3b7fff libstdc++.6.dylib (56.0.0 - compatibility 7.0.0) <EAA2B53E-EADE-39CF-A0EF-FB9D4940672A> /usr/lib/libstdc++.6.dylib 
    0x7fff8a7ef000 -  0x7fff8a7f5ff7 libunwind.dylib (35.1.0 - compatibility 1.0.0) <21703D36-2DAB-3D8B-8442-EAAB23C060D3> /usr/lib/system/libunwind.dylib 
    0x7fff8ac52000 -  0x7fff8ac5dfff libsystem_notify.dylib (98.5.0 - compatibility 1.0.0) <C49275CC-835A-3207-AFBA-8C01374927B6> /usr/lib/system/libsystem_notify.dylib 
    0x7fff8adb5000 -  0x7fff8adbdfff liblaunch.dylib (442.26.2 - compatibility 1.0.0) <2F71CAF8-6524-329E-AC56-C506658B4C0C> /usr/lib/system/liblaunch.dylib 
    0x7fff8add3000 -  0x7fff8addafff libcopyfile.dylib (89.0.0 - compatibility 1.0.0) <876573D0-E907-3566-A108-577EAD1B6182> /usr/lib/system/libcopyfile.dylib 
    0x7fff8af9d000 -  0x7fff8afa2fff libcache.dylib (57.0.0 - compatibility 1.0.0) <65187C6E-3FBF-3EB8-A1AA-389445E2984D> /usr/lib/system/libcache.dylib 
    0x7fff8b3b1000 -  0x7fff8b3fdff7 libauto.dylib (??? - ???) <AD5A4CE7-CB53-313C-9FAE-673303CC2D35> /usr/lib/libauto.dylib 
    0x7fff8b481000 -  0x7fff8b4b7fff libsystem_info.dylib (??? - ???) <4FFCA242-7F04-365F-87A6-D4EFB89503C1> /usr/lib/system/libsystem_info.dylib 
    0x7fff8bfb2000 -  0x7fff8bfb3ff7 libdnsinfo.dylib (453.19.0 - compatibility 1.0.0) <14202FFB-C3CA-3FCC-94B0-14611BF8692D> /usr/lib/system/libdnsinfo.dylib 
    0x7fff8bfb5000 -  0x7fff8bfb8ff7 libdyld.dylib (210.2.3 - compatibility 1.0.0) <F59367C9-C110-382B-A695-9035A6DD387E> /usr/lib/system/libdyld.dylib 
    0x7fff8c4cf000 -  0x7fff8c4f1ff7 libxpc.dylib (140.43.0 - compatibility 1.0.0) <70BC645B-6952-3264-930C-C835010CCEF9> /usr/lib/system/libxpc.dylib 
    0x7fff8c853000 -  0x7fff8c8a2ff7 libcorecrypto.dylib (??? - ???) <CE0C29A3-C420-339B-ADAA-52F4683233CC> /usr/lib/system/libcorecrypto.dylib 
    0x7fff8c8a3000 -  0x7fff8c8c8ff7 libc++abi.dylib (26.0.0 - compatibility 1.0.0) <D86169F3-9F31-377A-9AF3-DB17142052E4> /usr/lib/libc++abi.dylib 
    0x7fff8d537000 -  0x7fff8d538fff libsystem_blocks.dylib (59.0.0 - compatibility 1.0.0) <D92DCBC3-541C-37BD-AADE-ACC75A0C59C8> /usr/lib/system/libsystem_blocks.dylib 
    0x7fff8d9c3000 -  0x7fff8d9deff7 libsystem_kernel.dylib (2050.24.15 - compatibility 1.0.0) <A9F97289-7985-31D6-AF89-151830684461> /usr/lib/system/libsystem_kernel.dylib 
    0x7fff8e4c4000 -  0x7fff8e4d2ff7 libsystem_network.dylib (??? - ???) <0D99F24E-56FE-380F-B81B-4A4C630EE587> /usr/lib/system/libsystem_network.dylib 
    0x7fff8edff000 -  0x7fff8ee01ff7 libunc.dylib (25.0.0 - compatibility 1.0.0) <92805328-CD36-34FF-9436-571AB0485072> /usr/lib/system/libunc.dylib 
    0x7fff8ef14000 -  0x7fff8ef16fff libquarantine.dylib (52.1.0 - compatibility 1.0.0) <143B726E-DF47-37A8-90AA-F059CFD1A2E4> /usr/lib/system/libquarantine.dylib 
    0x7fff8fd19000 -  0x7fff8fd2eff7 libdispatch.dylib (228.23.0 - compatibility 1.0.0) <D26996BF-FC57-39EB-8829-F63585561E09> /usr/lib/system/libdispatch.dylib 
    0x7fff90bcc000 -  0x7fff90bcdff7 libremovefile.dylib (23.2.0 - compatibility 1.0.0) <6763BC8E-18B8-3AD9-8FFA-B43713A7264F> /usr/lib/system/libremovefile.dylib 
    0x7fff90bce000 -  0x7fff90bdcfff libcommonCrypto.dylib (50000.0.0 - compatibility 1.0.0) <BAAFE0C9-BB86-3CA7-88C0-E3CBA98DA06F> /usr/lib/system/libcommonCrypto.dylib 
    0x7fff91673000 -  0x7fff916dbff7 libc++.1.dylib (65.1.0 - compatibility 1.0.0) <20E31B90-19B9-3C2A-A9EB-474E08F9FE05> /usr/lib/libc++.1.dylib 
    0x7fff91890000 -  0x7fff91891fff libDiagnosticMessagesClient.dylib (??? - ???) <8548E0DC-0D2F-30B6-B045-FE8A038E76D8> /usr/lib/libDiagnosticMessagesClient.dylib 
    0x7fff9285c000 -  0x7fff9285dff7 libSystem.B.dylib (169.3.0 - compatibility 1.0.0) <9089D72D-E714-31E1-80C8-698A8E8B05AD> /usr/lib/libSystem.B.dylib 
    0x7fff92fdd000 -  0x7fff92fddfff libkeymgr.dylib (25.0.0 - compatibility 1.0.0) <CC9E3394-BE16-397F-926B-E579B60EE429> /usr/lib/system/libkeymgr.dylib 
    0x7fff937a9000 -  0x7fff938c192f libobjc.A.dylib (228.0.0 - compatibility 1.0.0) <90D31928-F48D-3E37-874F-220A51FD9E37> /usr/lib/libobjc.A.dylib 
    0x7fff93e3a000 -  0x7fff93e40fff libmacho.dylib (829.0.0 - compatibility 1.0.0) <BF332AD9-E89F-387E-92A4-6E1AB74BD4D9> /usr/lib/system/libmacho.dylib 
    0x7fff93ed1000 -  0x7fff93ed6fff libcompiler_rt.dylib (30.0.0 - compatibility 1.0.0) <08F8731D-5961-39F1-AD00-4590321D24A9> /usr/lib/system/libcompiler_rt.dylib 
    0x7fff9556e000 -  0x7fff9556fff7 libsystem_sandbox.dylib (??? - ???) <B739DA63-B675-387A-AD84-412A651143C0> /usr/lib/system/libsystem_sandbox.dylib 
    0x7fff9575b000 -  0x7fff95827ff7 libsystem_c.dylib (825.26.0 - compatibility 1.0.0) <4C9EB006-FE1F-3F8F-8074-DFD94CF2CE7B> /usr/lib/system/libsystem_c.dylib 
    0x7fff95a41000 -  0x7fff95a49ff7 libsystem_dnssd.dylib (??? - ???) <BDCB8566-0189-34C0-9634-35ABD3EFE25B> /usr/lib/system/libsystem_dnssd.dylib 
    0x7fff95abe000 -  0x7fff95aecff7 libsystem_m.dylib (??? - ???) <B434BE5C-25AB-3EBD-BAA7-5304B34E3441> /usr/lib/system/libsystem_m.dylib 
+0

我有与运行红宝石1.8.7相同的问题。同一版本的OSX和Passenger。杀死PassengerWatchdog进程有所帮助,下一个产生的并不会钉住CPU。 – postrational

回答

0

这是一个已知问题,已解决。尽管修复已经完成,但它并未作为宝石发布。查找下一个版本4.0.6,它应该包含修复程序。

现在,您可能会降级乘客(我没有精确定位引入此问题的版本,我的猜测是尝试版本< = 4.0.4),或者从源回购工作。

这里是bug跟踪页面: https://code.google.com/p/phusion-passenger/issues/detail?id=908

,我们正在经历的FreeBSD(OS X的基础)这个问题,并希望这将解决它有作为。

+0

更新:该补丁修复了FreeBSD上的问题。我们对代码中包含对“Apple”或“Darwin”的引用持怀疑态度,但它确实在FreeBSD上有效。 – Allen

0

我能够通过降级到4.0.3来完成这项工作,然后在使用killall杀死流氓进程之后做了一个艰难的停顿,然后开始了Apache。