MantisBT - Zandronum
View Issue Details
0002667Zandronum[All Projects] Bugpublic2016-03-06 21:542024-01-04 17:42
WaTaKiD 
Torr Samaho 
normalminoralways
resolvedfixed 
MicrosoftWindowsXP/Vista/7
2.1 
3.23.2 
0002667: Server informs the client about map changes, before the client fully loaded the map.
found with 3.0-r160229-1221 and cl_showwarnings 1
host server with doom2.wad map14
connect, join, warp 3022 -512, and exit
client_SoundActor: Couldn't find thing: 262
No tags attached.
parent of 0002947resolved  SoundActorIfNotPlaying: couldn't find actor 
parent of 0002951resolved  SetThingState: couldn't find actor 
parent of 0002952resolved  MoveThing: couldn't find actor 
parent of 0003008resolved  DoSectorLightPhased: couldn't find sector 
parent of 0002950resolved  client_DoRotatePoly: Invalid polyobj number 
parent of 0002653resolved  client_GiveInventory: Failed to give inventory type 
parent of 0002953resolved  PlayerRespawnInvulnerability: Invalid player number 
has duplicate 0002652closed  client_DoSectorLightStrobe: Cannot find sector 
has duplicate 0002666closed  client_DoSectorLightFireFlicker: Cannot find sector 
has duplicate 0002665closed  client_DoSectorLightLightFlash: Cannot find sector 
has duplicate 0002664closed  client_DoSectorLightGlow: Cannot find sector 
child of 0002561closed Dusk CLIENT_WARNING_MESSAGES 
Issue History
2016-03-06 21:54WaTaKiDNew Issue
2016-03-06 21:54WaTaKiDRelationship addedchild of 0002561
2016-11-27 09:40Torr SamahoNote Added: 0016337
2016-11-27 09:40Torr SamahoStatusnew => confirmed
2016-11-27 10:01Torr SamahoRelationship addedhas duplicate 0002652
2016-11-27 10:03Torr SamahoRelationship addedhas duplicate 0002666
2016-11-27 10:04Torr SamahoRelationship addedhas duplicate 0002665
2016-11-27 10:05Torr SamahoRelationship addedrelated to 0002664
2016-11-27 10:06Torr SamahoRelationship deletedrelated to 0002664
2016-11-27 10:06Torr SamahoRelationship addedhas duplicate 0002664
2016-11-27 10:07Torr SamahoProduct Version3.0-beta => 2.1
2016-11-27 10:07Torr SamahoSummaryclient_SoundActor: Couldn't find thing => Server informs the client about map changes, before the client fully loaded the map.
2016-11-27 10:10Torr SamahoNote Added: 0016345
2017-03-19 11:17Torr SamahoRelationship addedparent of 0002947
2017-03-19 11:18Torr SamahoRelationship addedrelated to 0002952
2017-03-19 11:19Torr SamahoRelationship addedrelated to 0002951
2017-03-19 11:19Torr SamahoRelationship deletedrelated to 0002951
2017-03-19 11:19Torr SamahoRelationship addedparent of 0002951
2017-03-19 11:20Torr SamahoRelationship deletedrelated to 0002952
2017-03-19 11:20Torr SamahoRelationship addedparent of 0002952
2017-03-19 11:21Torr SamahoRelationship addedparent of 0003008
2017-03-19 11:22Torr SamahoRelationship addedparent of 0002950
2017-03-19 14:05Torr SamahoNote Added: 0017016
2017-04-15 13:12Torr SamahoNote Added: 0017135
2017-04-15 13:12Torr SamahoAssigned To => Torr Samaho
2017-04-15 13:12Torr SamahoStatusconfirmed => needs testing
2022-03-02 02:52KaminskyTarget Version => 3.2
2022-03-27 19:51WaTaKiDNote Added: 0022168
2023-03-15 16:25DrinkyBirdNote Added: 0022806
2023-03-15 16:26DrinkyBirdNote Edited: 0022806bug_revision_view_page.php?bugnote_id=22806#r13943
2024-01-02 05:27Ru5tK1ngRelationship addedrelated to 0002653
2024-01-02 05:29Ru5tK1ngRelationship deletedrelated to 0002653
2024-01-02 05:29Ru5tK1ngRelationship addedparent of 0002653
2024-01-02 05:46Ru5tK1ngRelationship addedparent of 0002953
2024-01-02 05:50Ru5tK1ngRelationship addedparent of 0002946
2024-01-02 06:04Ru5tK1ngNote Added: 0022968
2024-01-04 17:42Ru5tK1ngStatusneeds testing => resolved
2024-01-04 17:42Ru5tK1ngResolutionopen => fixed
2024-01-04 17:42Ru5tK1ngFixed in Version => 3.2
2024-01-09 04:51Ru5tK1ngRelationship deletedparent of 0002946

Notes
(0016337)
Torr Samaho   
2016-11-27 09:40   
This one is tricky. The server already starts sending actor updates for the new map right after it asked the client to authenticate the new map, i.e. before the client loaded the map. This way the client is asked to do stuff with actors he doesn't know about yet, which causes the warnings. One would have to prevent the server from sending this kind of updates to clients who didn't load the map yet.

Adding

    if ( !( _flags & SVCF_ONLYTHISCLIENT ) && ( SERVER_GetClient( _current )->State == CLS_SPAWNED_BUT_NEEDS_AUTHENTICATION ) )
        return false;

to ClientIterator::isCurrentValid seems to do the trick, but this may possibly break other stuff since it affects all net commands.
(0016345)
Torr Samaho   
2016-11-27 10:10   
For the record, this is also happening in 2.1.2. We just didn't notice it, because 2.1.2 doesn't have cl_showwarnings.
(0017016)
Torr Samaho   
2017-03-19 14:05   
I thought about 0002667:0016337 a bit more and think this needs to be handled on a command level and integrated into the code generator.'https://bitbucket.org/zandronum/zandronum-sandbox/commits/dc038f3ec5bb3592ca6cd49f8c3dbe89a6ebf6fd [^]' is a proof of concept to fix this for 0002947.
(0017135)
Torr Samaho   
2017-04-15 13:12   
After further thinking about this there seems to be an easier way to fix this.

'https://bitbucket.org/zandronum/zandronum-sandbox/commits/de63310eb8c3735ee1e5e10da5cd9e4bfb1de7a4 [^]' is a very experimental attempt to fix this by simply restricting to whom broadcasted packets are sent.
(0022168)
WaTaKiD   
2022-03-27 19:51   
'https://osdn.net/projects/zandronum/scm/hg/zandronum-stable/commits/c770f5a4161209c6dfab1e1f165ea78b83229642 [^]' has been added
(0022806)
DrinkyBird   
2023-03-15 16:25   
(edited on: 2023-03-15 16:26)
The issue appears to be fixed, at least using the repro instructions given in this ticket. Actually it's also probably worth checking the child tickets as well...

(0022968)
Ru5tK1ng   
2024-01-02 06:04   
I couldn't reproduce the issue either with r231220. I'll run through the child tickets before closing this one.