Hi all,
I noticed that the Framing flow of Akka Streams tends to stop the stream
without letting the outer world know. In essence, the stream just stops and
supervision is not triggered.
The details of my findings are
here:
https://stackoverflow.com/questions/46319846/akka-streams-framing-exceptions-silently-swallowed-how-to-debug
In short, it seems to boil down to some side-effecting fail function inside
Framing.scala.
private[stream] def fail(connection: Connection, ex: Throwable): Unit = {
val currentState = connection.portState
if (Debug) println(s"$Name fail($connection, $ex) [$currentState]")
connection.portState = currentState | OutClosed
if ((currentState & (InClosed | OutClosed)) == 0) {
connection.portState = currentState | (OutClosed | InFailed)
connection.slot = Failed(ex, connection.slot)
if ((currentState & (Pulling | Pushing)) == 0) enqueue(connection)
else if (chasedPush eq connection) {
// Abort chasing so Failure is not lost (chasing does NOT decode the
event but assumes it to be a PUSH
// but we just changed the event!)
chasedPush = NoEvent
enqueue(connection)
}
}
if ((currentState & OutClosed) == 0)
completeConnection(connection.outOwner.stageId)
}
Is this behaviour desired? I am either missing something or this seems to
make the system a little less reactive ;)
Cheers
Fabio
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.