View Issue Details

IDProjectCategoryView StatusLast Update
0005676Spring engineGeneralpublic2017-09-30 01:10
ReporterFloris Assigned ToKloot  
PrioritynormalSeverityminorReproducibilitysometimes
Status resolvedResolutionfixed 
Product Version103.0 +git 
Fixed in Version104.0 +git 
Summary0005676: Chat gets corrupted
DescriptionAt the start of the game when I chatted as spec the messages where yellow of color, and then later... suddenly they get unprocessed grey colored at some point. But this isn't happening for every spec that talks.

Did anything change regarding chat messages? If so, what is it that could instigate it?


Its normal (for my own chat) until this point onwards:
https://youtu.be/7HxynYwSWgI?t=1057
TagsNo tags attached.
Attached Files
infolog.txt (Attachment missing)
Checked infolog.txt for Errors

Activities

Floris

2017-07-27 13:42

reporter   ~0018130

added infolog which i recreated from watching the replay, same thing happened.

Kloot

2017-07-27 15:13

developer   ~0018131

?

the (s) in front of your name disappeared when you typed "2 by 1?" at 17:39 so you just exited spectator-chat mode.

Floris

2017-07-27 16:32

reporter   ~0018132

yes, as intended, but like you can see above that [PinK]Triton has normal chat color while me not so much

Floris

2017-07-27 16:34

reporter   ~0018133

not much later I tried adding a: again but same grey result happened

Kloot

2017-07-28 16:23

developer   ~0018135

might be related to https://springrts.com/phpbb/viewtopic.php?f=23&t=36257 then; I'm not going to investigate further without a short demo / widget replicating this issue.

abma

2017-08-13 11:06

administrator   ~0018203

@Floris:
enable DebugGL=1 maybe if its reproduceable for you?

Floris

2017-09-28 16:30

reporter   ~0018450

the console used Spring.GetPlayerRoster()

and thats probably internally using Spring.GetPlayerList ?

and that func has changed, but the changelog doesnt note: GetPlayerRoster being changed
! exclude spectators from Spring.GetPlayerList if given a normal (id >= 0) team arg

Kloot

2017-09-28 17:29

developer   ~0018451

"and thats probably internally using Spring.GetPlayerList ?"

Nope.

Even if it did, the GetPlayerList change was made long after this ticket.

Doo

2017-09-28 19:39

reporter   ~0018452

tried to debug Spring.GetPlayerRoster() and here are the results after a player logged in mid game:

widget sample showing debug:
https://pastebin.com/2nk10YS2

infolog sample after player joined:
https://pastebin.com/aM7zHz74

As it can be seen, the new player's (ID = 6) table isnt returned by Spring.GetPlayerRoster().

Kloot

2017-09-28 19:59

developer   ~0018453

Last edited: 2017-09-28 20:01

the connection attempt from freedomOfCensure was logged on frame 613.

your debug prints happened on frame 651 (38 frames or 1.26 seconds later) when the engine proper did not yet know about this player because no "added new player freedomOfCensure with number X to team Y" message showed up in the interim.

Doo

2017-09-28 20:46

reporter   ~0018454

The full infolog is 200mb big so i can't really upload it (it's a shame, but echoing the roster table at each console line triggers more console lines haha).

result of a search by keywords (freedomOfCensure) in infolog
[...]
[f=0000062] [Game::ClientReadNet] added new player freedomOfCensure with number 6 to team 0
[f=0000091] Connection attempt from freedomOfCensure
[f=0000091] -> Version: 104.0
[f=0000091] -> Connection established (given id 6)
[...]
[f=0000152] Spectator freedomOfCensure left the game: normal quit
[...]
[f=0000233] Connection attempt from freedomOfCensure
[f=0000233] -> Version: 104.0
[f=0000233] -> Connection established (given id 6)
[...]
[f=0000298] Spectator freedomOfCensure left the game: normal quit
[...]
[f=0000613] Connection attempt from freedomOfCensure
[f=0000613] -> Version: 104.0
[f=0000613] -> Connection established (given id 6)
[f=0000617] [Game::ClientReadNet][LOGMSG] sender="freedomOfCensure" string="[PreGame::GameDataReceived][map-checksums={0x94ae1782,0x94ae1782}]"
[f=0000617] [Game::ClientReadNet][LOGMSG] sender="freedomOfCensure" string="[PreGame::GameDataReceived][mod-checksums={0x8dfb927,0x8dfb927}]"
[...]
[f=0000788] [Game::ClientReadNet][LOGMSG] sender="freedomOfCensure" string="[PE::CalcChecksum][BLK_SIZE=16][SHA_DATA=75cf2814f2e1abf522439544eac6c35ad02ad9b8f1469260990940419e99992231f1d3928cf280f3b5e67fa39f0674d3cf945548ab75ca07de56ef37ec97ec6d]"
[...]
[f=0000810] Game::ClientReadNet][LOGMSG
[f=0000824] [Game::ClientReadNet][LOGMSG] sender="freedomOfCensure" string="[PE::CalcChecksum][BLK_SIZE=32][SHA_DATA=6c393922a995d9a2f42e795c7e094300811a0c7f8d7f7fcec50761f25b52fadcdf71b877bbcdea53360757d425531b7fd2039870d8d0f238cf79eef65d731b11]"
[f=0000833] Error: [LuaRules::RunCallInTraceback] error=2 (LUA_ERRRUN) callin=RecvLuaMsg trace=[Internal Lua error: Call failure] [string "LuaRules/Gadgets/cmd_idle_players.lua"]:335: attempt to concatenate local 'name' (a nil value)
[...]

He was a spectator, wasn't in starting specs, joined/exited/joined/exited/joined again, always as spec.
Roster has never returned its name. Not even once.
There is also that gadget error that popped at some point which seems related to GetPlayerList() so i'm not sure it's relevant here, but pasted anyway.

Kloot

2017-09-28 21:09

developer   ~0018455

Last edited: 2017-09-28 21:15

if this reproduces when watching the demo, please attach it (demo, not log) and the BA version (commit hash) that was used.

Doo

2017-09-29 22:06

reporter   ~0018459

balanced annihilation test-7492-3cd8f63
It did reproduce in demos when i had tried.

We now use two consoles, one that filters out chat messages, and the other filters out game/host messages.

When president trump sends messages (near end of demo), they appear in the wrong console, and don't appear in the chat message.
The name string in brackets ([name] message) isnt equal to any name returned by GetPlayerRoster() so it's not counted as a playername.
It doesnt seem like the name string is altered but rather that there is no similar name returned by getplayerroster.
20170929_215236_DeltaSiegePrime Ultimate_104.sdfz (Attachment missing)

Kloot

2017-09-30 00:39

developer   ~0018460

Last edited: 2017-09-30 01:10

thanks, should be fixed after dc7507ce88

Issue History

Date Modified Username Field Change
2017-07-27 13:26 Floris New Issue
2017-07-27 13:41 Floris File Added: infolog.txt
2017-07-27 13:42 Floris Note Added: 0018130
2017-07-27 15:13 Kloot Note Added: 0018131
2017-07-27 16:32 Floris Note Added: 0018132
2017-07-27 16:34 Floris Note Added: 0018133
2017-07-28 16:23 Kloot Note Added: 0018135
2017-08-13 11:06 abma Note Added: 0018203
2017-09-28 16:30 Floris Note Added: 0018450
2017-09-28 17:29 Kloot Note Added: 0018451
2017-09-28 19:39 Doo Note Added: 0018452
2017-09-28 19:59 Kloot Note Added: 0018453
2017-09-28 20:01 Kloot Note Edited: 0018453
2017-09-28 20:46 Doo Note Added: 0018454
2017-09-28 21:09 Kloot Note Added: 0018455
2017-09-28 21:15 Kloot Note Edited: 0018455
2017-09-29 22:06 Doo File Added: 20170929_215236_DeltaSiegePrime Ultimate_104.sdfz
2017-09-29 22:06 Doo Note Added: 0018459
2017-09-30 00:39 Kloot Assigned To => Kloot
2017-09-30 00:39 Kloot Status new => resolved
2017-09-30 00:39 Kloot Resolution open => fixed
2017-09-30 00:39 Kloot Fixed in Version => 104.0 +git
2017-09-30 00:39 Kloot Note Added: 0018460
2017-09-30 01:10 Kloot Note Edited: 0018460