2013-06-24 6 views
2

Я запускаю Пассажира, и когда я перезапускаю Apache, я получаю процесс PassengerWatchdog, который поражает 100% CPU.Пассажир: 100% CPU

Любые предложения?

Я нахожусь в Mac OS X 10.8.4 с Passenger 4.0.5 и Ruby 2.0.0p195.

Использование Mac OS X Activity Monitor вот что я получил, когда я Sampled его:

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 помогает, следующий порожденный не привязывает процессор. – postrational

ответ

0

Это известная проблема была решена. Хотя исправление совершено, оно не было выпущено как драгоценный камень. Найдите следующую версию 4.0.6, которая должна содержать исправление.

На данный момент вы можете либо понизить пассажира (я не определил версию, которая вводит эту проблему, я думаю, что нужно попробовать версию < = 4.0.4) или работать с исходным репо.

Вот трекер страница ошибки: https://code.google.com/p/phusion-passenger/issues/detail?id=908

Мы столкнулись с этой проблемой в FreeBSD (на базе OS X), и надеется, что это позволит решить его там.

+0

ОБНОВЛЕНИЕ: Патч исправил проблему и на FreeBSD. Мы были настроены скептически, поскольку в код были включены ссылки на «Apple» или «Darwin», но он работал над FreeBSD. – Allen

0

Я смог сделать эту работу, понизив ее до 4.0.3, затем сделав жесткую остановку, а затем начав Apache после убийства процессов изгоев с использованием killall.