2016-07-08 7 views
1

これはmy other question here on stackへのフォローアップの質問です。Webサイトの返品に500時間を要する内部サーバーエラー

これが再生に問題があるかどうか、またはウェブサーバーの正常な結果であるかどうかは不明です。私は遊びを利用しています。2.1.2

状況がうまくいけば、すぐにhttpコード200を返すウェブサイトがあります。 サイトに何らかの理由で問題がある場合、すぐには500内部サーバーエラーが返されません。それは最終的に500エラーを返すためにそれが5分かかるように思えます。

私たちのサイトを運営するためにプレーフレームワークを使用することには問題がありますか、これがなぜ起こっているかを確認する必要がありますか?私はまた、Webサイトをチェックするためにpythonからhttplibを使用しています。

デバッグに役立つその他の詳細はわかりませんが、再生フレームワークがサイトに何かをしていて、タイムアウト(5分)まで500のコードで返信しないとうまくいけばうれしいです合格。

UPDATE:スクリプトを使用してサーバーに送信したメッセージです。これはテストサーバー上にあるので、私はそれが失敗することを期待しています。 ulimit -n 275を実行して、サーバー上でファイルのエラーが発生しました。

これは私が問題の原因の5分以内にそれを実行する場合、私は私のスクリプトから取得エラーです:

got some exception 
Traceback (most recent call last): 
    File "monitorAlive.py", line 27, in <module> 
    main() 
    File "monitorAlive.py", line 24, in main 
    get_status_code(host) 
    File "monitorAlive.py", line 16, in get_status_code 
    if resp == 200: 
UnboundLocalError: local variable 'resp' referenced before assignment 

しかし、私は5+分待ってから、私は私のスクリプトを実行した場合

didn't get a 200 http response. something wrong 
this is the code we got: 500 

これらは私がCA時のログMSGのは、以下のとおりです。サイト上で確認するために、これは私が得るものですファイルのエラーが発生しました。私のスクリプトはWebサーバーに追加のメッセージを記録させませんが、意図的にサイト/サーバーに問題が発生した後にスクリプトを実行して、これらのメッセージがファイルエラーを引き起こしています。

! @70jo4chan - Internal server error, for (GET) [/] -> 

play.api.PlayException: Not initialized[?] 
     at play.core.ReloadableApplication.<init>(ApplicationProvider.scala:92) ~[play_2.10.jar:2.1.2] 
     at play.core.server.NettyServer$$anonfun$mainDev$1.apply(NettyServer.scala:273) ~[play_2.10.jar:2.1.2] 
     at play.core.server.NettyServer$$anonfun$mainDev$1.apply(NettyServer.scala:272) ~[play_2.10.jar:2.1.2] 
     at play.utils.Threads$.withContextClassLoader(Threads.scala:18) ~[play_2.10.jar:2.1.2] 
     at play.core.server.NettyServer$.mainDev(NettyServer.scala:271) ~[play_2.10.jar:2.1.2] 
     at play.core.server.NettyServer.mainDev(NettyServer.scala) ~[play_2.10.jar:2.1.2] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_71] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_71] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_71] 
     at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71] 
     at sbt.PlayCommands$$anonfun$53$$anonfun$55.apply(PlayCommands.scala:575) ~[na:na] 
     at sbt.PlayCommands$$anonfun$53$$anonfun$55.apply(PlayCommands.scala:507) ~[na:na] 
     at scala.Either$RightProjection.map(Either.scala:533) ~[na:na] 
     at sbt.PlayCommands$$anonfun$53.apply(PlayCommands.scala:507) ~[na:na] 
     at sbt.PlayCommands$$anonfun$53.apply(PlayCommands.scala:487) ~[na:na] 
     at sbt.Command$$anonfun$sbt$Command$$apply1$1$$anonfun$apply$6.apply(Command.scala:72) ~[na:na] 
     at sbt.Command$.process(Command.scala:90) ~[na:na] 
     at sbt.MainLoop$$anonfun$next$1$$anonfun$apply$1.apply(MainLoop.scala:71) ~[na:na] 
     at sbt.MainLoop$$anonfun$next$1$$anonfun$apply$1.apply(MainLoop.scala:71) ~[na:na] 
     at sbt.State$$anon$2.process(State.scala:170) ~[na:na] 
     at sbt.MainLoop$$anonfun$next$1.apply(MainLoop.scala:71) ~[na:na] 
     at sbt.MainLoop$$anonfun$next$1.apply(MainLoop.scala:71) ~[na:na] 
     at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) ~[na:na] 
     at sbt.MainLoop$.next(MainLoop.scala:71) ~[na:na] 
     at sbt.MainLoop$.run(MainLoop.scala:64) ~[na:na] 
     at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:53) ~[na:na] 
     at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:50) ~[na:na] 
     at sbt.Using.apply(Using.scala:25) ~[na:na] 
     at sbt.MainLoop$.runWithNewLog(MainLoop.scala:50) ~[na:na] 
     at sbt.MainLoop$.runAndClearLast(MainLoop.scala:33) ~[na:na] 
     at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:17) ~[na:na] 
     at sbt.MainLoop$.runLogged(MainLoop.scala:13) ~[na:na] 
     at sbt.xMain.run(Main.scala:26) ~[na:na] 
     at xsbt.boot.Launch$.run(Launch.scala:55) ~[na:na] 
     at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:45) ~[na:na] 
     at xsbt.boot.Launch$.launch(Launch.scala:69) ~[na:na] 
     at xsbt.boot.Launch$.apply(Launch.scala:16) ~[na:na] 
     at xsbt.boot.Boot$.runImpl(Boot.scala:31) ~[na:na] 
     at xsbt.boot.Boot$.main(Boot.scala:20) ~[na:na] 
     at xsbt.boot.Boot.main(Boot.scala) ~[na:na] 

UPDATE#2:もし、play runを使用する場合、私は

+0

サーバーログにアクセスできますか? – rethab

+0

@rethab、見てのためのthx。私はそれらを編集として質問に追加しましたが、それは私にあまり教えてくれません=( – Classified

+0

@rethabあなたはデモモードでPlayを実行していますか?たぶんそれは物事をコンパイルしているのでしょうか? – Salem

答えて

1

プレイ2.1.2を使用しています言及を忘れ、あなたのアプリケーションは、DEVモードで起動されます。このモードでは、アプリケーション自体は最初のリクエストを受け取ったときにのみ実際に起動します。サーバが起動してリクエストを受け入れる準備ができていなくても、Playは何かが変更されたことを検出して再コンパイルし、ブラウザを「待機」状態にしてしまうことがあります(Play 2.xの各バージョンでこの動作が気づきました。セットアップやバグに関連するものかどうかは分かりません)。これはあなたが得ているそれらの遅れの理由になる可能性があります。

これを回避する最善の方法は、すべてがplay copileplay startを使用して、準備ができている、またはあなたの生産に使用する準備ができて、あなたのアプリケーションでファイルを提供しますplay distを、使用していることを確認することです。詳細については、hereを参照してください。

関連する問題