Application error, Rails application failed to start properly

Hej.
Mam na DreamHost umieszczoną stronkę napisaną w RoR. Od jakiegoś tygodnia występują dziwne problemy z jej wyświetleniem, pojawia się komunikat: “Application error
Rails application failed to start properly”, co dziwne raz udaje mi się załadować stronkę a raz pojawia się powyższy komunikat, np. raz 2h działa poprawnie a później znowu siada i nie wyświetla się przez nasyępne 5h. W Google Analytics też obserwuję że są jakieś problemy z wyświetleniem tej strony. Na DreamHost mam też inne stronki które nie są napisane w RoR i one ładują się ok. Możecie coś poradzić ?

pozdrawiam Monika

Z tego co pamietam to oni ubijaja dispatchery co jakis czas. Dodanie ponizszego kodu do dispatch.fcgi powinno zalatwic sprawe.

[code]RailsFCGIHandler.process! nil, 10

class RailsFCGIHandler
private
def frao_handler(signal)
dispatcher_log :info, “asked to terminate immediately”
dispatcher_log :info, “frao handler working its magic!”
restart_handler(signal)
end
alias_method :exit_now_handler, :frao_handler
end[/code]
U nich na wiki tez chyba o tym wspominaja, a moze to byl hostingrails.com.

Dzięki, wpróbuje na pewno.

mam to samo, nie pomaga.

Monika,

DreamHost ostatnio jest tak fatalny, że aż ciężko w to uwierzyć. Na początku roku skopali coś w obsłudze znaków LATIN2 w MySQL i przez to zarówno mój sklep (www.ezosfera.pl) jak i Wykop.pl przestały działać. Problem był trywialny do usunięcia, ale przez 5 (PIĘĆ!) dni nie udało nam się dogadać z administratorami DreamHostu i namówić ich żeby poświęcili te kilkanaście minut na naprawę. Dostawaliśmy tylko opóźnione i wymijające odpowiedzi.

A potem zaczęły się jeszcze gorsze dramaty. Tak jak opisujesz, serwer najpierw działał przez kilka godzin a potem się zawieszał na godzinę lub więcej. Przez kilka dni miałem Error 500 przez jakieś 50% dnia (w sumie). Sam problem objawiał się tak, że strona próbowała się łączyć i po jakiejś minucie wysypywała się z komunikatem błędu.

Po wielu próbach naprawienia tego przy pomocy DH, dostałem w końcu od nich odpowiedź, że moja aplikacja zabiera za dużo pamięci. Dziwne tylko dlaczego akurat teraz zaczęły się z tym problemy. Zauważyłem za to, że ich serwer ostatnimi czasy odpala niepotrzebnie coraz więcej procesów Railsowych. Zamiast utrzymywać ich np. 3 sztuki i w ten sposób oszczędzić pamięć, to momentami widziałem, że było ich 7 lub więcej.

I tutaj właśnie uwaga do tego kodu, który podał pawel.

Zawsze miałem to wpisane do dispatch.fcgi, ale w ostatnich dniach zacząłem podejrzewać, że może to to jest powodem odpalania dodatkowych procesów przez DH. Usunąłem i faktycznie zauważyłem, że strona trochę mniej się wiesza. Oczywiście błędy 500 ciągle się pojawiają (a jakże!), ale tym razem wskakują od razu, po jakiejś sekundzie, i po zrobieniu refresh w przeglądarce (lub wejściu na stronę jeszcze raz) znikają. Serwer też dłużej jest stabilny, chociaż co 2-3 dni trzeba mu zrobić reset.

Więc choć to dalej nie jest dobre rozwiązanie, to jest to trochę mniejszy ból. A mnie to akurat ratuje, bo w następnym tygodniu powinienem mieć już gotowy serwer dedykowany i wtedy uciekam z DH :slight_smile:

OK, podsumowując:

  • DreamHost jest beznadziejny, ich serwery są wolne, co chwilę coś się chrzani i do tego mają ciągłe problemy z obsługą Rails. Zdecydowanie nie polecam.
  • Jak już musisz, to spróbuj jednak wariant bez tego dodatkowego kodu w dispatch.fcgi. Być może tak jak u mnie, będzie Ci to lepiej działać.

Powodzenia! :slight_smile:

to znaczy, sprostuję: ostatnio mi działa z tym dodatkowym kodem w miarę. tzn. 3 dni chyba się nic nie sypie. ale poprzednio, także z nim, nic mi nie działało.

Hm… czyli możliwe, że po prostu akurat teraz DreamHost zaczął działać znośnie. Byłoby dobrze, gdyby mu już tak zostało. Chociaż patrząc na doświadczenia ostatnich miesięcy raczej w to wątpię…

Dla mnie DH nie istnieje, wiecej zabawy niz z dedykiem i to z marnym skutkiem.

Z tego co zauwazylem:
Po deploymencie trzeba bylo ubijac procesy recznie po pidzie, bo zadna inna met. nie skutkowala.
Ruby byl 1.8.2 i przestarzale gemy (zwl. te wymagajace kompilacji) czyli skonczylo sie na wlasnej instalacji + wszystkie potrzebne liby i gemy, dodatkowo potrafili ubic kompilacje w toku bo im za duzo zasobow brala.

Jak ktos koniecznie chce w US to Media Temple Grid-Server (to nie shared hosting: http://www.mediatemple.net/webhosting/gs/faq/grid_vs_shared_hosting-faq.htm)

Ale w Europie sa niezle VPSy za ta cene (tylko zeby gwarantowali RAM - nie vServer tylko VPS albo RootDS - zreszta odsylam do webhostingtalk.pl). Z polskich ofert to http://xxl-web.com/vserver.html. Podobno sa przedstawicielami http://www.strato.de/v-power/start/index.html

Dedyki sa fajne, ale za duzo zabawy z nimi. Te komputery to zazwyczaj stare graty (tzn. najtansze dedyki), backupy trzeba we wlasnym zakresie zorg. - jednym slowem atrakcja dla administratora a nie developera. Ale jak sie troche czasu poswieci to wszystko pieknie chodzi: mongrelki, rake remote:deploy itd.

Dla mnie teraz to opcja jest tylko VPS (Dedykowany Ram, ograniczona liczba klientow 10-15, dobry sprzet np. Dell PowerEdge, automatyczne backupy i inne goodies)

Szkoda sie maltretowac dzielonym hostingiem, a do dedyka tez nie kazdy ma zdrowie :slight_smile:

Z tym killowaniem to też miałem problem, ale ostatecznie okazało się, że kombinacja poniższych dwóch poleceń usuwała wszystkie procesy (i te działające i te wiszące).

killall -9 ruby killall -9 ruby1.8
A co do reszty… ja na razie postawiłem na dedyka, zobaczymy co z tego wyjdzie. Wiem już na pewno, że DreamHost to porażka, i chyba ciężko, żeby było gorzej, więc jestem nastawiony pozytywnie :wink:

Dorzuce kilka groszy od siebie http://forum.rubyonrails.pl/viewtopic.php?pid=1278#p1278

Pozdrawiam

Hej, dzięki za szeroki odzew. Z jednej strony przyznam że troszkę mnie to pocieszyło :), to znaczy… że nie jest to wina aplikacji :slight_smile: z drugiej zaś strony szkoda ża takie rzeczy się zdarzają. Od czasu kiedy dopisałam do dispatch-a fragment kodu aplikacja działa ale w związku z tym o czym napisaliście nie wiem teraz czy to sprawa kodu czy DH wzioł w garść. Taka sytuacja (z takim samym błędem) zdarzyła mi się po raz drugi na przestrzeni 4 miesięcy.

pozdrawiam
Monika

a na DH nie można odpalić mongrela ? Ja robiłem jakieś proste benchmarki i wychodziło że nawet jeden proces mongrela jest w stanie obsłużyć mały ruch. Odpada wtedy problem dispachowania dużych ilości procesów.

[quote=darek_rusin]Z tym killowaniem to też miałem problem, ale ostatecznie okazało się, że kombinacja poniższych dwóch poleceń usuwała wszystkie procesy (i te działające i te wiszące).

killall -9 ruby killall -9 ruby1.8
[/quote]
jeszcze czasem trzeba dispatch.fcgi usuwać osobno (ktoś wie, czemu 1 aplikacja na kilka sposobów się uruchamia?)

chyba na razie się z DH nie wyniosę, mam tam zdecydowanie za dużo rzeczy, ale faktycznie, za dobrze to nie działa. znaczy działa tak jak kosztuje.

nie można. można zagłosować, żeby wprowadzili. ja zagłosowałem.

nie można. można zagłosować, żeby wprowadzili. ja zagłosowałem.[/quote]
A no właśnie - dlatego mi się wydawało że coś robiłem z mongrelem na DH - też głosowałem :slight_smile: