Player Character Ghosting (after player leaves game)
I have seen this issue with almost all emu servers I have played on over the past couple of years. Players will use /exit or /quit instead of /logging out, or they will crash to desktop and leave a ghost in game. Unless that player logs back in, their character will continue to stand there until the zone or server are reset or a GM does a #kick on the player. This is most apparent in more popular zones.
I have nexus setup as my server base and after a day of running the server, Nexus will have an average of 10-15 ghost characters when I get home and check it. My server peaks around 60+ players, and these ghosts definitely seem to take a toll on server performance. I know my server isn't the only one affected by them at this time.
I have searched these forums multiple times and have never even seen a dev mention or confirm the issue. I couldn't find any bugs listed for it, or anything good in server support. The few posts I seen that mentioned ghosting at all were unanswered posts.
I've tried setting the rulesets related to linkdeath and timeouts, but that makes no difference.
For some reason, these ghosts seem to Blink off and on. First you can see them, then they will disappear for a couple of seconds, and then reappear. The best way to tell if a player is a ghost is to try to inspect them by right clicking. If you get the con message, but no inspect window, they are definitely a ghost.
I remember playing on Zebuxoruk server in late 2006 and the ghost issue was initially a problem there. But once that server was updated to a certain version of code, the ghosting seemed to stop completely and the server seemed more stable. So, it seems that the ghosting issue was resolved at some point of the code releases, but it is definitely back.
My theory to this is that for some reason, the connections aren't being torn down after characters leave the world. This may only be an issue on Windows, but I haven't heard anyone confirm that Linux never ghosts players. The reason I think that connections aren't being torn down is because while I was troubleshooting another issue, I found that I was getting traffic from IP addresses that weren't even logged into my server anymore. I had an issue with high latency players causing my debug logs to be flooded, so I downloaded an IP blocker and setup a block for IPs that were causing the error. I found that even after the player had logged off, or after I #kicked them off, they would continue sending me traffic indefinitely until I rebooted my server. Even if I blocked the IP for a while and then unblocked it, the connection would still continue! I am beginning to suspect that these connections staying active might be the reason Windows servers need to be restarted so often to keep lag from reaching insane levels. If each connection did stay active even after people logged off, that would well explain why it would impact server performance over time. Having a couple hundred connections is enough to bog down almost any server.
Does anyone out there know a fix for this for Windows? Maybe there is a setting I am missing somewhere. If not, maybe this is something the Devs can look into if they get a chance.
Thanks
|