2015-10-30 10 views
5

Sto eseguendo un'app in Play utilizzando activator run e forse 3 su 5 volte, si bloccherà, quando andrò a http://localhost:9000/, si limiterà a girarci per sempre.Play Framework appeso quando si colpisce l'app nel browser

Anche io vedo un sacco di errori promise timed out.

Dove devo cercare questo problema?

Ho attivato la registrazione con logLevel := Level.Debug, ma non vedo nulla di sbagliato. Mentre l'app sta girando, non vedo alcuna registrazione.


Se ho appena lasciato riposare e girare per lungo tempo (~ 5 min) finirà per dare a questo errore:

[info] play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[PrivilegedActionException: null]] 
[info] at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:265) ~[play_2.11-2.4.3.jar:2.4.3] 
[info] at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:191) ~[play_2.11-2.4.3.jar:2.4.3] 
[info] at play.core.server.Server$class.logExceptionAndGetResult$1(Server.scala:50) [play-server_2.11-2.4.3.jar:2.4.3] 
[info] at play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.scala:59) [play-server_2.11-2.4.3.jar:2.4.3] 
[info] at play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.scala:57) [play-server_2.11-2.4.3.jar:2.4.3] 
[info] at scala.util.Either$RightProjection.flatMap(Either.scala:522) [scala-library.jar:na] 
[info] at play.core.server.Server$class.getHandlerFor(Server.scala:57) [play-server_2.11-2.4.3.jar:2.4.3] 
[info] at play.core.server.NettyServer.getHandlerFor(NettyServer.scala:33) [play-netty-server_2.11-2.4.3.jar:2.4.3] 
[info] at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$8.apply(PlayDefaultUpstreamHandler.scala:139) [play-netty-server_2.11-2.4.3.jar:2.4.3] 
[info] at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$8.apply(PlayDefaultUpstreamHandler.scala:139) [play-netty-server_2.11-2.4.3.jar:2.4.3] 
[info] Caused by: java.security.PrivilegedActionException: null 
[info] at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_20] 
[info] at play.runsupport.Reloader$.play$runsupport$Reloader$$withReloaderContextClassLoader(Reloader.scala:39) ~[na:na] 
[info] at play.runsupport.Reloader.reload(Reloader.scala:321) ~[na:na] 
[info] at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:113) ~[play-server_2.11-2.4.3.jar:2.4.3] 
[info] at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:111) ~[play-server_2.11-2.4.3.jar:2.4.3] 
[info] at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) ~[scala-library.jar:na] 
[info] at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) ~[scala-library.jar:na] 
[info] at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423) ~[na:1.8.0_20] 
[info] at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[na:1.8.0_20] 
[info] at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902) ~[na:1.8.0_20] 
[info] Caused by: java.util.concurrent.TimeoutException: Futures timed out after [300000 milliseconds] 
[info] at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219) ~[scala-library.jar:na] 
[info] at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223) ~[scala-library.jar:na] 
[info] at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:190) ~[scala-library.jar:na] 
[info] at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53) ~[scala-library.jar:na] 
[info] at scala.concurrent.Await$.result(package.scala:190) ~[scala-library.jar:na] 
[info] at play.forkrun.ForkRun$$anonfun$askForReload$1.apply(ForkRun.scala:127) ~[na:na] 
[info] at play.forkrun.ForkRun$$anonfun$askForReload$1.apply(ForkRun.scala:125) ~[na:na] 
[info] at play.runsupport.Reloader$$anonfun$reload$1.apply(Reloader.scala:323) ~[na:na] 
[info] at play.runsupport.Reloader$$anon$3.run(Reloader.scala:43) ~[na:na] 
[info] at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_20] 

Devo dire che questo è un molto semplice app. Non sta facendo altro che il rendering di HTML finora.


Il suo male, perché sembra che ci sia un sacco di bene nel quadro, ma è solo lento e terribilmente inaffidabile.

+0

Vedere http://stackoverflow.com/questions/16560348/how-to-change-future-timeout-with-play-framework-2-1-0 o http://stackoverflow.com/questions/29747778/ perché-do-i-get-a-molto-lunga-timeout-in-my-play framework-app. Sembra un problema noto con alcune configurazioni di riproduzione. –

+0

@ Gaël - Assegnazione della corsa a forcella che imposta un colpo - grazie – mtyson

+2

@ Gaël Commentando questa riga: '// fork in run: = true' ha fatto la differenza. Notte e giorno. – mtyson

risposta

2

fork in run := true viene aggiunto sempre all'avvio dell'applicazione dall'interfaccia utente di Activators (per i processi di spawning), quindi interrompere l'uso dell'interfaccia utente per l'app specificata (magari aggiungere la configurazione di avvio nell'IDE) o ricordare sempre di cancellare/commentare/impostare su falso.

+0

Just FYI - Questa app non è stata creata tramite l'interfaccia utente – mtyson