2016-09-29 7 views
0

У нас есть HTTP-сервер Akka, обслуживающий некоторый контент Scala JS на AWS. Мы заметили, что через некоторое время сервер начинает бросать ошибку ниже в журналах и, хотя, работает определенный URL, но некоторые файлы не могут быть правильно загружены с ошибкой Failed to load resource: net::ERR_CONTENT_LENGTH_MISMATCH в браузере. Журналы сервера выглядит, как показано ниже (это точно такая же ошибка во всех случаях):Ошибка Akka Http: InvalidContentLengthException

[ERROR] [09/29/2016 21:29:22.150] [designer-actor-system-akka.actor.default-dispatcher-56831] [akka.actor.ActorSystemImpl(designer-actor-system)] Outgoing response stream error akka.http.scaladsl.model.InvalidContentLengthException: HTTP message had declared Content-Length 997 but entity data stream amounts to 164 bytes less at akka.http.scaladsl.model.InvalidContentLengthException$.apply(ErrorInfo.scala:50) at akka.http.impl.engine.rendering.RenderSupport$CheckContentLengthTransformer$$anon$2.onUpstreamFinish(RenderSupport.scala:130) at akka.stream.impl.fusing.GraphInterpreter.processEvent(GraphInterpreter.scala:732) at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:616) at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:471) at akka.stream.impl.fusing.GraphInterpreterShell.receive(ActorGraphInterpreter.scala:433) at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:603) at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:618) at akka.actor.Actor$class.aroundReceive(Actor.scala:484) at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:529) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526) at akka.actor.ActorCell.invoke(ActorCell.scala:495) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) at akka.dispatch.Mailbox.run(Mailbox.scala:224) at akka.dispatch.Mailbox.exec(Mailbox.scala:234) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

Мы бежим Akka версии 2.4.7 и OpenJDK версия 1.8.0_101-b13.The ошибка исчезнет, ​​если мы перезапустить Akka HTTP-сервер, но возвращается через несколько часов.

Не уверен, что вызывает проблему. Любая помощь будет принята с благодарностью.

ответ

2

Я думаю, что я понял, что вызывало это. У нас был автоматизированный процесс развертывания, который развертывает файлы HTML/CSS/Javascript на сервере Akka. Кажется, что сервер Akka кэширует размер содержимого, и если статические файлы обновляются без перезагрузки, это дало бы InvalidContentLengthException. Мы включили перезапуск как часть процесса развертывания, и проблема, похоже, была решена.