From @TheBizzle on November 11, 2013 21:55
The Linode server crashed recently in an unprecedented way.
The screen session/application logs had this to say about the matter:
[info] application - Robin joining
[info] application - "Sample%20Models/Social%20Science/Segregation.nlogo" requested
[info] application - Command(Robin,open,globals [
Opening
[info] application - Opening model
[info] application - Command(Robin,compile,globals [
Compiling
[info] application - Finished opening model
[info] application - Command(Robin,chatter,run)
[info] application - "Sample%20Models/Mathematics/Probability/ProbLab/Unverified/Sample%20Stalagmite.nlogo" requested
[info] application - Command(Robin,open,globals [
Opening
[info] application - Opening model
[info] application - Command(Robin,compile,globals [
Compiling
[info] application - Finished opening model
[info] application - "test/tortoise/Vants.nlogo" requested
[info] application - Command(Robin,open,;; workarounds:
[info] application - Command(Robin,compile,;; workarounds:
Opening
Compiling
java.nio.channels.ClosedChannelException
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.cleanUpWriteBuffer(AbstractNioWorker.java:406)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.close(AbstractNioWorker.java:374)
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:87)
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:36)
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:54)
at com.typesafe.netty.http.pipelining.HttpPipeliningHandler.handleDownstream(HttpPipeliningHandler.java:106)
at org.jboss.netty.channel.Channels.disconnect(Channels.java:781)
at org.jboss.netty.channel.AbstractChannel.disconnect(AbstractChannel.java:211)
at play.core.server.netty.WebSocketHandler$$anon$1.messageReceived(WebSocketHandler.scala:79)
at com.typesafe.netty.http.pipelining.HttpPipeliningHandler.messageReceived(HttpPipeliningHandler.java:64)
at org.jboss.netty.handler.codec.http.HttpContentDecoder.messageReceived(HttpContentDecoder.java:138)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
[info] application - Robin joining
[INFO] [11/11/2013 16:14:30.141] [application-akka.actor.default-dispatcher-18] [akka://application/deadLetters] Message [models.core.WebInstanceMessages$Connected] from Actor[akka://application/user/$q#-623231855] to Actor[akka://application/deadLetters] was not delivered. [9] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
Killed
Since there's no timestamp on that stacktrace, it's tough to say whether or not it's related to the crash, but I've never seen that error before, and it seems to me that a plausible interpretation of the events here is that this "Robin" did some stuff, left, tried to come back, started up a websocket to do so, and disconnected before finishing connecting to the server.
This StackOverflow answer suggests that the error is caused by trying to write to a closed socket. Fixing this, then, could be as simple as wrapping a websocket write in a try block, but I don't think it would be appropriate to just run around and wrapping all websockets writes. Or... maybe it is...?
Copied from original issue: NetLogo/Galapagos#103
From @TheBizzle on November 11, 2013 21:55
The Linode server crashed recently in an unprecedented way.
The
screensession/application logs had this to say about the matter:Since there's no timestamp on that stacktrace, it's tough to say whether or not it's related to the crash, but I've never seen that error before, and it seems to me that a plausible interpretation of the events here is that this "Robin" did some stuff, left, tried to come back, started up a websocket to do so, and disconnected before finishing connecting to the server.
This StackOverflow answer suggests that the error is caused by trying to write to a closed socket. Fixing this, then, could be as simple as wrapping a websocket write in a
tryblock, but I don't think it would be appropriate to just run around and wrapping all websockets writes. Or... maybe it is...?Copied from original issue: NetLogo/Galapagos#103