I ran into an issue with Akka getting into a state where it can't reconnect. It shouldn't be related to deathwatch/quarantine, since I have set watch-failure-detector.acceptable-heartbeat-pause to 24h. I'm using Akka 2.3.0.
I have my SuspendableTransportAdapter, which allows me to suspend() and resume() at will. The adapter's behavior is pretty simple: (1) when suspend() is called, all existing associations are immediately disassociated; (2) while suspended, all write requests are dropped, and all incoming associations are immediately disassociated. I used the FailureInjectorTransportAdapter as a guide. I have a very simple test in which a Ping actor periodically sends messages to an Echo actor (running in a different process), which then echoes the messages back to the Ping actor. In the Ping actor's actor system, I alternate suspending/resuming the transport every 10 seconds. If everything is working right, i expect to see about 10 pings, then nothing for 10 seconds, then about 10 pings, etc. It appears to work for a while -- when suspended, Akka will detect the closed association and attempt to re-establish the connection, which will eventually succeed when the transport is resumed. However, after a while, Akka will get into a state where something is stuck and it will not reconnect again. In my transport adapter, when an inbound association comes in while suspended, I am dropping the assocation (by calling handle.disassociate()). I found that if I simply ignore the association instead of dropping it, Akka doesn't get into the hung state. But on the other hand, it takes much longer for Akka to re-establish communication. Instead of getting ~10 pings every 20 seconds, I get ~10 pings every 40 seconds (it misses an entire cycle). So, naively, it seems that dropping the associations is causing the problem. However, FailureInjectorTransportAdapter drops associations too, and this seems to be a reasonable operation. As far as I know, I'm playing by the rules regarding the transport adapter. Any ideas? Thanks! Jim -- >>>>>>>>>> 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 http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
