RPG

Tasklist

FS#304 - Timed out sessions not cleaned up

Attached to Project: RPG
Opened by neb (neb) - Tuesday, 19 August 2008, 09:25 GMT-7
Last edited by neb (neb) - Tuesday, 17 August 2010, 08:07 GMT-7
Task Type Bug Report
Category Platform
Status Closed
Assigned To No-one
Operating System All
Severity Medium
Priority High
Reported Version 0.3
Due in Version 0.9
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Improperly closed client sessions are (supposed to be) cleaned up, allowing the player to log in again. It has been observed that (at least) in the case of a "Connection timed out" exception, the session is not cleaned up.

Specifically, this happens when no other clients are connected. Upon broadcast messages (eg, chat), the dead socket is detected and cleaned up.

This must be made much more robust.


[2008-08-19_11:13:36_EDT] WARN (core.net.driver.Reader) NetReaderProc [w.x.y.z] socket error [EXCEPTION: Connection timed out]
----- BEGIN EXCEPTION -----
java.io.IOException
[Connection timed out]
- sun.nio.ch.FileDispatcher.read0(Native Method)
- sun.nio.ch.SocketDispatcher.read(Unknown Source)
- sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
- sun.nio.ch.IOUtil.read(Unknown Source)
- sun.nio.ch.SocketChannelImpl.read(Unknown Source)
- root.core.net.frame.FrameInput.read(FrameInput.java:78)
- root.core.net.driver.Reader.processIO(Reader.java:146)
- root.core.net.driver.IOService$IOProcess.process(IOService.java:130)
- root.core.proc.Proxy.process(Proxy.java:34)
- root.core.proc.Group.process(Group.java:99)
- root.core.proc.Group.access$300(Group.java:23)
- root.core.proc.Group$Runner.run(Group.java:134)
- java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
- java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
- java.util.concurrent.FutureTask.run(Unknown Source)
- java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
- java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
- java.lang.Thread.run(Unknown Source)
----- END EXCEPTION -----
[2008-08-19_11:13:36_EDT] INFO (core.net.driver.NetworkDriver) Closing [w.x.y.z]
Closed by  neb (neb)
Tuesday, 17 August 2010, 08:07 GMT-7
Reason for closing:  Fixed
Comment by neb (neb) - Wednesday, 10 February 2010, 19:18 GMT-7
Server was not monitoring for peer disconnect, requiring logout to be processed. Session subsystem now a proper module/agent, logic and integration greatly improved. Peer disconnects are immediately checked for proper logout (and cleaned up immediately if not).
Comment by neb (neb) - Wednesday, 10 February 2010, 19:19 GMT-7
This may have fixed  FS#531 

Loading...