View Issue Details

IDProjectCategoryView StatusLast Update
0008744Multi Theft Auto : San AndreasServerpublic2016-05-21 17:09
ReporterDutchman101Assigned Toccw 
PrioritynormalSeverityminorReproducibilitysometimes
Status resolvedResolutionfixed 
Product Version1.4 
Target Version1.5Fixed in Version1.5 
Summary0008744: Player socket / slot override bugs, 0-pinged players (1.4.1)
Description

Since late revisions of 1.4.0 there has been an increase of players with 0 ping that are actually dead connections, this is an old bug that can exist sometimes, but now it's different because especially with 1.4.1 and 1.4-recent builds this has expanded to where they take up non-existent free slots.

Because of that, an server can override it's own maxplayer / technical playerlimit and reach for example like 35/30 players in count.

The 0-ping players show in serverbrowser, in the playerlist but wont appear on the playercounter in serverbrowser. It will appear as true playercount on other browser services (like game-state) in full.

Initially after reporting to ccw, something similar to this: http://bugs.mtasa.com/view.php?id=6930 got re-fixed..

But it wasn't fully fixed by now. Using the latest revision of server 1.4.1, over time the server will gain plenty of 0-ping players. And also they look like to have an specific name sorting, like apparently 1 player had FIVE 0-ping entries of himself, listed online like this:

Playername
Playername.1
Playername.2

and so on. I can't imagine they changed their name to next number everytime, and this happened with multiple players that suddenly had over 4 entries on their own name, with just an digit or letter behind each; like they're being generated. All of these had 0 ping.

Additional Information

It also seemed to have happened on different servers already, 3 of mine, independent of eachother so it's nothing with the server. It only happens from 1.4.0 late revision and worsens with latest 1.4.1

Also it happened on multiple other servers, and it bugs accounts so that the 0pingers need to be kicked to use their accounts again.

If someone can tell if the increase of occurances for this thing is noticable for them also.. and I think it's important to get this fixed before 1.4.1 release.

TagsNo tags attached.

Activities

arranTuna

2015-01-29 14:31

manager   ~~0022944

The old script I used to detect and kick these bugged players:

function ghostCheck()
for i, p in pairs(getElementsByType("player")) do
if (not getNetworkStats(p)) then
-- kick them or whatever you want.
end
end
end
setTimer(ghostCheck, 60000, 0)

It detected 17 players.

arranTuna

2015-02-24 00:14

manager   ~~0023038

Last edited: 2015-02-24 00:30

View 3 revisions

My old ghost detection is no longer detecting them all. There is a player whose spawned and even sat in their vehicle and hasn't moved (getPlayerIdleTime) in over 3 days, it's definitely a dead connection as they show all the signs. If you kill him he doesn't die server side, requesting a screenshot has no result, etc)

Server: 1.4.1-7085 Ghost client: 1.4.1-7076

Edit: Sometimes getNetworkStats returns false but most of the time it's returning a table where all the values like bytesReceived are 0.

Edit: Actually this is no different to how it was before, getNetworkStats would return false about 1 in 10 times so after about 10 minutes they get detected and kicked the reason why he managed 3 days was because I forgot to add it to start list again.

Dutchman101

2015-02-26 05:58

updater   ~~0023053

Last edited: 2015-02-26 06:04

View 2 revisions

I found this script variant somewhat more efficient against all occasions so far:

function fixNetBug()
for k,v in ipairs(getElementsByType("player")) do
if not getNetworkStats ( v ) then
outputServerLog("Detected dead connection for player")
kickPlayer ( v )
end
end
end
setTimer(fixNetBug,30000,0)

It's different if some of them have normal ping etc, that'd be impossible to detect.

And now, do we have an update on the bug itself or cause? I think its still pretty major, even though ive seen an decrease in occurance on more recent 1.4.1 revisions, or is it me.
noticed when looking through logs it still happens very often, many times just before it detects, the bugged player outputs attempt to join ('Nick already in use').. I also had it myself once, what i seen happening is trying to join but slow/delayed appearance (hang on Connecting to... host) while that server wouldve been perfectly reachable, then I disconnected (actually aborted connecting) and tried again, at that point I bugged myself this way and seen my own duplicate 0-pinger online there when I didnt even manage to enter yet. Maybe this helps in finding the problem

ccw

2015-06-25 05:58

administrator   ~~0023416

Last edited: 2015-06-25 06:00

View 2 revisions

Please test with r7314

  • Put a file called 'netconfig.ini' into the same directory as MTA Server.exe/mta-server.
  • netconfig.ini should contain the line: ipt = true
  • The server log will then have NET: messages
  • When you get a zombie player, give me the server log containing NET: messages for that player

Note: Please make sure any custom dead player fixes you have are disabled.

arranTuna

2015-06-25 12:40

manager   ~~0023417

Testing in progress.

arranTuna

2015-07-01 11:59

manager   ~~0023482

https://github.com/multitheftauto/mtasa-blue/commit/1c324ef42a05852d55d3e8c1632520c0bd634152

Issue History

Date Modified Username Field Change