Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Player Character Duplication #377

Open
Xavious opened this issue Dec 13, 2018 · 1 comment
Open

Player Character Duplication #377

Xavious opened this issue Dec 13, 2018 · 1 comment
Labels

Comments

@Xavious
Copy link

Xavious commented Dec 13, 2018

Issue

Upon leaving a telnet session running for a certain period of inactivity, the connection seems to wane on the client side. The game becomes unresponsive, but doesn't drop the session. When I disconnect and reconnect, and attempt to login to the same character, the session will once again hang as it goes through the choose-character.js event.

Once I disconnect and reconnect a second time it loads my character like normal, but there is a duplicate standing there. This process can be rinsed and repeated seemingly in perpetuity. I spawned about 3 duplicates in one particularly long session of reading code and testing things in game, with long gaps in between.

Synopsis

Inactivity causes the session to hang on the client side, yet persist on the server even after going link-dead. While testing I also discovered some awkwardness when it comes to attempting to log into the same character from a new session while the old session is still alive. It left my new session hanging, after choosing that same character, as it fires the multi-play event in the same way as before. However, this case did not cause duplication.

Server Logs

2018-12-12T23:17:34.410Z - info: User connected...
2018-12-12T23:17:40.959Z - info: Selected Xavious
2018-12-12T23:17:40.962Z - warn: Booted Xavious: Replaced. No multiplaying allowed.

Environment (please complete the following information):

  • Client side - Windows 10 and MUSHclient
  • Server side - Centos 7 with node.js v10.14.1
@shawncplus
Copy link
Member

shawncplus commented Dec 24, 2018

I'm going to need exact steps because I can't replicate this. Here are the steps I tried:

  1. Step maxIdleTime to 1 minute
  2. Ensure allowMultiplay is false
  3. Start server
  4. On a Windows 10 machine use MUSHclient to connect to server
  5. Log into character Foobar
  6. On a Linux machine use telnet to connect to server
  7. Log into character Tester
  8. Let Foobar character idle timeout

Received this message on Foobar character

You were kicked for being idle for more than 1 minutes!

Server logs this message

2018-12-24T21:24:22.431Z - info: Kicked Admin for being idle.
2018-12-24T21:24:22.431Z - info: Admin has gone linkdead.
  1. Use Tester character to check who list. See that only Tester is present
  2. Use MUSHclient to reconnect and log in Foobar character. I do not receive a multiplaying message.
  3. Use Tester character to check who list again. See Tester and one Foobar character. No duplicates.

I was also not able to replicate any bugs with dual connections, i.e., trying to log onto the same character with multiple clients. I was correctly booted from the other connections when logging into that character.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants