Zandronum Chat on our Discord Server Get the latest version: 3.2
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001248Zandronum[All Projects] Bugpublic2013-01-13 18:112018-09-30 21:36
ReporterWatermelon 
Assigned ToWatermelon 
PrioritylowSeveritytrivialReproducibilityrandom
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version1.0 
Target Version1.3Fixed in Version1.3 
Summary0001248: Random disconnect from players when they do not disconnect
DescriptionIf you go into the demo and demo_skiptonextmap around 4-5 times until you get to $DANNY$ vs <PRO>Torvald on the map SSL2, if you skip ahead to when Danzoa has 23 frags (demo_skiptics 5000-6000 from the beginning of the duel should move you there faster), there's a random disconnect message when Torvald does not actually disconnect.

According to the logs, they were as follows:

[13:01:13;20:36:04] Connect (v1.0): [KSHARP[S]'s IP HERE]
[13:01:13;20:36:05] client <PRO>Torvald disconnected. // Tor did not actually disconnect here
...
[13:01:13;20:36:08] $danny$ > SuperShotgun > <PRO>Torvald
...
[13:01:13;20:36:15] Connect (v1.0): [KSHARP[S]'s IP HERE]
...
[13:01:13;20:36:16] Fraglimit hit.
[13:01:13;20:36:16] $danny$ wins!
[13:01:13;20:36:16] $danny$ > SuperShotgun > <PRO>Torvald
[13:01:13;20:36:17] Ksharp[S] has connected.

It appears that when someone messes up a connect, it disconnects them but they aren't there and probably goes to the next available player or something? It shows ksharp connecting twice but there wasn't a disconnect message or anything.

Demo is here:
'http://www.speedyshare.com/388MQ/Zandronum-13.01.2013-11.12.14-doom2.wad-skulltag-data.pk3-skulltag-actors.pk3-duel32a.pk3-wbuild-plugin-v1.1b.pk3.cld [^]'

If it goes down, I'll re-upload it.
Attached Files

- Relationships

-  Notes
User avatar (0005774)
Torr Samaho (administrator)
2013-01-13 18:39

Is it possible that Torvald used the player slot now assigned to Ksharp before? Probably the player name of a slot is not cleared when a player disconnects.
User avatar (0005775)
Watermelon (developer)
2013-01-13 18:48

I checked the log file and it didn't show ksharp's IP connecting before at all for the previous 5 days (possibly even longer, just the log started 5 days ago and this is the first time he/she connected). I heard this used to happen before Zandronum back in Skulltag, so I figure it isn't a glitch with some increase in the player limit (there were only 5-6 people in the server) if that rules out any of that.

If there's anything else you want me to check I can do so.
User avatar (0005776)
Torr Samaho (administrator)
2013-01-13 19:20

Did Torvald connect to the server before? It could be that the disconnect message simply reads the name from an empty player slot (since the connection attempt was not successful) and that Torvald was the last player who used this slot. Probably I should extend the connect / disconnect messages to mention the player slot number.
User avatar (0005779)
Watermelon (developer)
2013-01-13 21:02

Is there a way I can find that out through the demo? Like using 'playerinfo' or something like that?
User avatar (0006165)
Torr Samaho (administrator)
2013-03-24 13:31

Yes, using playerinfo after a player connected will tell you which slot the player has.
User avatar (0006169)
Watermelon (developer)
2013-03-24 15:48
edited on: 2013-03-24 15:48

There is probably a messed up pointer or something since I've seen

Player disconnected

2 spaces in the above^

I figure it's referencing a non-existing player?

User avatar (0006176)
Watermelon (developer)
2013-03-26 20:04
edited on: 2013-03-27 16:27

Someone said they noticed it only happening in Zandro 1.1. I don't recall this happening in Skulltag. Could anything have changed?

EDIT:
What are your guys thoughts on a small fix where it will not send the disconnect message if the player is still in the game or their name/player object is null?

User avatar (0007265)
AlienOverlord (reporter)
2013-09-22 12:26
edited on: 2013-09-22 12:27

"Player disconnected" — this message appears when someone disconnects while authenticating level. The player generally exists, but his nickname isn't set yet.

User avatar (0007278)
Arco (updater)
2013-09-25 15:55
edited on: 2013-09-25 15:55

I'm not sure if this a related issue, but sometimes the names of the clients on the server won't show up at all. It will just say "Client Disconnected."

Watermelon: I've also seen this happening albeit more frequently on v1.x, where Skulltag wasn't afflicted as much.

User avatar (0008882)
Watermelon (developer)
2014-06-07 22:23

This will suppress any unfinished connections from spamming the console:

'https://bitbucket.org/ChrisKOmg/zandronum/commits/3891ee18ecfe26625ee1d4a0c27c78245c3f114d [^]'
User avatar (0008885)
Dusk (developer)
2014-06-07 22:43

Looks like a bandage hack instead of fixing the underlying problem...

Either way I don't think V_TextContainsPrintableCharacters is necessary. You can use V_RemoveTrailingCrapFromFString to remove these characters and then check whether the string became empty.
User avatar (0008893)
Watermelon (developer)
2014-06-08 00:25

I'd rather fix the underlying problem but I have no idea how to track it since its completely random. KSharp was able to it quite easily somehow, but never explained how to after flooding a duel server.
User avatar (0008895)
Watermelon (developer)
2014-06-08 00:33

Changing to the recommended feature.

Also, since it looks like a blank string, would strlen() be valid? it seems like it converts:

printf("client %s\\c- disconnected"...)
into
"client disconnected"

Therefore, I wonder if strlen of > 0 is worth putting there instead?
User avatar (0008898)
Dusk (developer)
2014-06-08 01:24

I'd do something like


FString tmp ( netname_goes_here );
V_RemoveTrailingCrapFromFString( tmp );
if ( tmp.IsNotEmpty() )
{
    // netname actually contains stuff
}
User avatar (0008906)
Torr Samaho (administrator)
2014-06-08 09:14

Looking at the initial report, blank strings are not the real problem here:
Quote

[13:01:13;20:36:04] Connect (v1.0): [KSHARP[S]'s IP HERE]
[13:01:13;20:36:05] client <PRO>Torvald disconnected. // Tor did not actually disconnect here

I hope this is a proper fix for the underlying problem.

What's going on here is the following: userinfo.netname is not cleared when a client is disconnected. That itself is not a problem, since it's properly initialized when a client finishes a connection in SERVER_ConnectNewPlayer. The consequence of this behavior is that userinfo.netname may not be used for clients that are not fully connected yet.
User avatar (0009977)
Arco (updater)
2014-07-16 00:00

The testing that has had a week prior can confirm that this issue has been fixed. I'll re-open this if I see otherwise.

Issue Community Support
This issue is already marked as resolved.
If you feel that is not the case, please reopen it and explain why.
Supporters: No one explicitly supports this issue yet.
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2013-01-13 18:11 Watermelon New Issue
2013-01-13 18:39 Torr Samaho Note Added: 0005774
2013-01-13 18:48 Watermelon Note Added: 0005775
2013-01-13 19:20 Torr Samaho Note Added: 0005776
2013-01-13 21:02 Watermelon Note Added: 0005779
2013-03-20 05:48 Watermelon Assigned To => Watermelon
2013-03-20 05:48 Watermelon Status new => acknowledged
2013-03-20 05:48 Watermelon Assigned To Watermelon =>
2013-03-24 13:31 Torr Samaho Note Added: 0006165
2013-03-24 15:48 Watermelon Note Added: 0006169
2013-03-24 15:48 Watermelon Note Edited: 0006169 View Revisions
2013-03-26 20:04 Watermelon Note Added: 0006176
2013-03-27 16:27 Watermelon Note Edited: 0006176 View Revisions
2013-09-22 12:26 AlienOverlord Note Added: 0007265
2013-09-22 12:27 AlienOverlord Note Edited: 0007265 View Revisions
2013-09-25 15:55 Arco Note Added: 0007278
2013-09-25 15:55 Arco Note Edited: 0007278 View Revisions
2014-06-07 22:23 Watermelon Note Added: 0008882
2014-06-07 22:23 Watermelon Assigned To => Watermelon
2014-06-07 22:23 Watermelon Status acknowledged => needs review
2014-06-07 22:43 Dusk Note Added: 0008885
2014-06-08 00:25 Watermelon Note Added: 0008893
2014-06-08 00:33 Watermelon Note Added: 0008895
2014-06-08 00:33 Watermelon Status needs review => assigned
2014-06-08 01:24 Dusk Note Added: 0008898
2014-06-08 09:14 Torr Samaho Note Added: 0008906
2014-06-08 09:15 Torr Samaho Status assigned => needs testing
2014-06-08 09:15 Torr Samaho Target Version => 1.3
2014-07-16 00:00 Arco Note Added: 0009977
2014-07-16 00:00 Arco Resolution open => fixed
2014-07-16 00:00 Arco Fixed in Version => 1.3
2014-07-16 00:00 Arco Status needs testing => resolved
2018-09-30 21:36 Blzut3 Status resolved => closed






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2025 MantisBT Team
Powered by Mantis Bugtracker