Akka: Stream cancellation may have broken bincomp

Created on 19 Aug 2019  路  3Comments  路  Source: akka/akka

Reported by @agolubev
Discovered when using 2.6-M6 with Akka HTTP

Related to #23908

Uncaught error from thread [helloAkkaHttpServer-akka.actor.default-dispatcher-8]: Method akka/http/impl/engine/server/HttpServerBluePrint$RequestTimeoutSupport$$anon$3$$anon$7.akka$stream$stage$OutHandler$$_lastCancellationCause_$eq(Ljava/lang/Throwable;)V is abstract, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[helloAkkaHttpServer]
java.lang.AbstractMethodError: Method akka/http/impl/engine/server/HttpServerBluePrint$RequestTimeoutSupport$$anon$3$$anon$7.akka$stream$stage$OutHandler$$_lastCancellationCause_$eq(Ljava/lang/Throwable;)V is abstract
    at akka.http.impl.engine.server.HttpServerBluePrint$RequestTimeoutSupport$$anon$3$$anon$7.akka$stream$stage$OutHandler$$_lastCancellationCause_$eq(HttpServerBluePrint.scala)
    at akka.stream.stage.OutHandler.onDownstreamFinish(GraphStage.scala:1835)
    at akka.stream.impl.fusing.GraphInterpreter.processEvent(GraphInterpreter.scala:512)
    at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:391)
    at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:615)
    at akka.stream.impl.fusing.GraphInterpreterShell$AsyncInput.execute(ActorGraphInterpreter.scala:494)
    at akka.stream.impl.fusing.GraphInterpreterShell.processEvent(ActorGraphInterpreter.scala:590)
    at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:758)
    at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:773)
    at akka.actor.Actor.aroundReceive(Actor.scala:532)
    at akka.actor.Actor.aroundReceive$(Actor.scala:530)
bug stream

Most helpful comment

https://github.com/akka/akka-http/pull/2654 is an experiment to run some tests against akka-master in nightlies even if the rest of the code was compiled against an older version. Hopefully, this way nightlies can catch such a slip next time.

All 3 comments

reproduced this with running example app akka-http-quickstart-scala
under the load of JMeter. Config is donwloadable here: https://drive.google.com/open?id=18o2olRm7-sXiNnPN36FMg7_DLEh2duIE
JMeter requests /users endpoint in one thread 100 times
First half of all requests are succeeded but second one show java.net.SocketException: Connection reset by peer (connect failed) on JMeter's side. Plus "Uncaught error from thread" exception on server

https://github.com/akka/akka-http/pull/2654 is an experiment to run some tests against akka-master in nightlies even if the rest of the code was compiled against an older version. Hopefully, this way nightlies can catch such a slip next time.

You can use snapshot version聽 2.6-20190821-210110 聽if you are eager to try latest. Build instructions for using snapshot version in聽https://doc.akka.io/docs/akka/2.6/project/links.html#snapshots-repository

Was this page helpful?
0 / 5 - 0 ratings