After reading the source code of IOManagerActor, it seems it might have 
concurrent problem if it tries to write message into a closed channel.

On Wednesday, April 22, 2015 at 4:09:28 PM UTC+8, jacy hong wrote:
>
>
>    1. 
>    
>    Server Environment
>    
>    OS: Centos 6
>
>  JDK:  1.6.0_30
>
> Akka:   2.1.4
>
>    1. 
>    
>    Crash Description
>    
> Recently, our production server encountered IOManagerActor restart caused 
> by (IOException: Connection timed out) when it is trying to write message 
> to the socket, however we are not able to reproduce it in our development 
> environment, we have tried to run more concurrent users and disconnected 
> the cable in the middle of process in order to produce tcp timeout, but 
> none of them produced desired error.
>
> In production we encountered the incident twice and we took a look at the 
> log stack trace, it showed the exception which caused the restart is on def 
> write in IOManagerActor:
>
> at 
> akka.actor.IOManagerActor.akka$actor$IOManagerActor$$write(IO.scala:1180) 
> ~[akka-actor_2.10-2.1.4.jar:na]
>
>
>    1. 
>    
>    StackTrace Log
>    
> [ERROR] [2015-04-01 17:16:49.796]  [akka.actor.default-dispatcher-16] 
> [akka.actor.IOManagerActor] Connection timed out
>
> java.io.IOException: Connection timed out
>
>        at sun.nio.ch.FileDispatcher.write0(Native Method) ~[na:1.6.0_30]
>
>        at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) 
> ~[na:1.6.0_30]
>
>        at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:122) 
> ~[na:1.6.0_30]
>
>        at sun.nio.ch.IOUtil.write(IOUtil.java:93) ~[na:1.6.0_30]
>
>        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:352) 
> ~[na:1.6.0_30]
>
>        at akka.actor.WriteBuffer.run$2(IO.scala:1221) 
> ~[akka-actor_2.10-2.1.4.jar:na]
>
>        at akka.actor.WriteBuffer.write(IO.scala:1236) 
> ~[akka-actor_2.10-2.1.4.jar:na]
>
>        at 
> akka.actor.IOManagerActor.akka$actor$IOManagerActor$$write(IO.scala:1180) 
> ~[akka-actor_2.10-2.1.4.jar:na]
>
>        at 
> akka.actor.IOManagerActor$$anonfun$receive$1.applyOrElse(IO.scala:1076) 
> ~[akka-actor_2.10-2.1.4.jar:na]
>
>        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) 
> ~[akka-actor_2.10-2.1.4.jar:na]
>
>        at akka.actor.ActorCell.invoke(ActorCell.scala:386) 
> ~[akka-actor_2.10-2.1.4.jar:na]
>
>        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) 
> ~[akka-actor_2.10-2.1.4.jar:na]
>
>        at akka.dispatch.Mailbox.run(Mailbox.scala:212) 
> ~[akka-actor_2.10-2.1.4.jar:na]
>
>        at 
> akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506)
>  
> ~[akka-actor_2.10-2.1.4.jar:na]
>
>        at 
> scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 
> ~[scala-library-2.10.4.jar:na]
>
>        at 
> scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
>  
> ~[scala-library-2.10.4.jar:na]
>
>        at 
> scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 
> ~[scala-library-2.10.4.jar:na]
>
>        at 
> scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
>  
> ~[scala-library-2.10.4.jar:na]
>
> after that IOManager got restarted: 
>
> [akka.actor.IOManagerActor] restarting
>
>
>

-- 
>>>>>>>>>>      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.

Reply via email to