2025-06-14 04:56 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0005676Spring engineGeneralpublic2017-09-30 01:10
ReporterFloris 
Assigned ToKloot 
PrioritynormalSeverityminorReproducibilitysometimes
StatusresolvedResolutionfixed 
Product Version103.0 +git 
Target VersionFixed 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.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0018130

Floris (reporter)

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

~0018131

Kloot (developer)

?

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

~0018132

Floris (reporter)

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

~0018133

Floris (reporter)

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

~0018135

Kloot (developer)

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.

~0018203

abma (administrator)

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

~0018450

Floris (reporter)

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

~0018451

Kloot (developer)

"and thats probably internally using Spring.GetPlayerList ?"

Nope.

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

~0018452

Doo (reporter)

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().

~0018453

Kloot (developer)

Last edited: 2017-09-28 20:01

View 2 revisions

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.

~0018454

Doo (reporter)

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.

~0018455

Kloot (developer)

Last edited: 2017-09-28 21:15

View 2 revisions

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

~0018459

Doo (reporter)

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.

~0018460

Kloot (developer)

Last edited: 2017-09-30 01:10

View 2 revisions

thanks, should be fixed after dc7507ce88

+Notes

-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 View Revisions
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 View Revisions
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 View Revisions
+Issue History