Anonymous | Login | Signup for a new account | 2024-04-18 11:02 UTC |
My View | View Issues | Change Log | Roadmap | Zandronum Issue Support Ranking | Rules | My Account |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0002033 | Zandronum | [All Projects] Bug | public | 2014-12-22 20:22 | 2018-09-30 23:10 | ||||
Reporter | Leonard | ||||||||
Assigned To | Torr Samaho | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | Microsoft | OS | Windows | OS Version | XP/Vista/7 | ||||
Product Version | 1.3 | ||||||||
Target Version | 1.4 | Fixed in Version | 2.0 | ||||||
Summary | 0002033: Problems while in "requesting snapshot" state. | ||||||||
Description | The client loads the map before requesting a snapshot. This is problematic because the map will be loaded but the client won't have a body yet until he actually receives the snapshot. Because of this, while being in the "requesting snapshot" state, you can hide the console by bringing the menu (gamestate set to GS_LEVEL) and it will cause a massive HOM. Even worse is if after that you open the automap, you instantly crash. You don't even need to open up the menu to get a HOM, if you have con_alpha < 1, a HOM will always appear and it's even worse for people like me who have con_alpha set to 0: instant full screen HOM everytime you connect. | ||||||||
Additional Information | I thought myself how we could fix this issue: -Setting the gamestate to GS_FULLCONSOLE again might not even work and could cause problems. -Setting gameaction to bring the fullconsole won't fix the problem since the console will still have alpha applied to it. -Making the client spawn on himself while waiting for the snapshot sounds like a total mess. Here's the solution I've come up with: Load the map in client_BeginSnapshot instead. I tested this myself and it works flawlessly. I will make a pull request shortly after making this ticket. | ||||||||
Attached Files | |||||||||
Notes | |
(0011085) Leonard (developer) 2014-12-22 20:37 |
'https://bitbucket.org/Torr_Samaho/zandronum-stable/pull-request/117/fixed-the-client-could-potentially-crash/diff [^]' |
(0011087) Torr Samaho (administrator) 2014-12-23 20:49 |
Thanks for your patch! I don't think that moving the map loading to the beginning of the snapshot is the proper strategy though. I expect this to make it even more difficult for the client to join large maps. The problem is that the server will be sending a large amount of packets in the snapshot, but the client will be completely blocked from receiving packets while loading the map. The reason for the old way was to give the client time to load the map, before the server sends all the information. Nevertheless, what you report is a bug and definitely should be fixed. A better way to fix this, would be to properly prevent the client from rendering the map before the snapshot is fully received. "viewactive = false;" is supposed to take care of this, but apparently it doesn't work as intended. |
(0011088) Leonard (developer) 2014-12-24 16:31 |
I see. I thought it was a good idea since the same thing happens with normal map changes (server_AuthenticateLevel) where the server tells the client to load the map at the same time it sends the snapshot. |
(0011110) Leonard (developer) 2014-12-28 21:46 |
Updated the pull request. |
(0011111) Torr Samaho (administrator) 2014-12-28 21:49 |
Thanks, looks much better! I'll have to look at this in detail and will report back or pull right away. |
(0011127) Leonard (developer) 2014-12-29 15:14 |
I just realised this doesn't apply to client demos. Will update the pull request in a short while. |
(0011130) Torr Samaho (administrator) 2014-12-29 17:21 |
Please see my bibucket comment on how to shorten the code. Other than that, the patch looks good. |
(0011131) cobalt (updater) 2014-12-29 17:46 |
Issue addressed by commit 42d4faa97c04: Fixed: The client could potentially get HOMs while requesting a snapshot. (fixes 2033) Committed by Leonard on Monday 29 December 2014 18:07:21 Changes in files: docs/zandronum-history.txt | 1 + src/c_console.cpp | 12 +++++++++--- src/d_main.cpp | 7 ++++++- 3 files changed, 16 insertions(+), 4 deletions(-) |
(0011132) Torr Samaho (administrator) 2014-12-29 17:49 |
Pulled, rebased and compressed. I also went ahead and replaced( NETWORK_GetState( ) == NETSTATE_CLIENT ) || ( CLIENTDEMO_IsPlaying( ) == true ) by NETWORK_InClientMode()in the NoWipe code fragment and sneaked "(fixes 2033)" into the log message. |
(0011145) Torr Samaho (administrator) 2014-12-31 10:15 |
Now that I merged this with 2.0 I noticed severe display problems in the console while the snapshot is received in the software renderer. We'll need to fix this ASAP. |
(0011146) Torr Samaho (administrator) 2014-12-31 10:56 |
I have found a way that seems to fix the problem. |
(0011153) Leonard (developer) 2014-12-31 13:58 |
Ah sorry I didn't test the fix with software, I always use opengl. Your fix seems to have broken for people with vid_hw2d set to 1. I made a pull request that fixes the issue in all cases (with any vid_renderer and vid_hw2d values) |
(0011163) Torr Samaho (administrator) 2015-01-01 17:02 |
Strange, on my system the fix worked with "vid_hw2d 1" and the software renderer. Apparently, there are some system dependent issues. I took a different approach now to fix this: Instead of copying more and more code snippets from "case GS_FULLCONSOLE:", the code now jumps there and uses the normal full console rendering code. |
(0011170) Arco (updater) 2015-01-01 18:13 |
Issue fixed in r150101-1703. |
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 |
2014-12-22 20:22 | Leonard | New Issue | |
2014-12-22 20:37 | Leonard | Note Added: 0011085 | |
2014-12-23 20:49 | Torr Samaho | Note Added: 0011087 | |
2014-12-23 20:50 | Torr Samaho | Status | new => feedback |
2014-12-24 16:31 | Leonard | Note Added: 0011088 | |
2014-12-24 16:31 | Leonard | Status | feedback => new |
2014-12-28 21:46 | Leonard | Note Added: 0011110 | |
2014-12-28 21:49 | Torr Samaho | Note Added: 0011111 | |
2014-12-28 21:49 | Torr Samaho | Assigned To | => Torr Samaho |
2014-12-28 21:49 | Torr Samaho | Status | new => needs testing |
2014-12-28 21:52 | Torr Samaho | Status | needs testing => needs review |
2014-12-29 15:14 | Leonard | Note Added: 0011127 | |
2014-12-29 17:21 | Torr Samaho | Note Added: 0011130 | |
2014-12-29 17:22 | Torr Samaho | Status | needs review => feedback |
2014-12-29 17:46 | cobalt | Status | feedback => needs testing |
2014-12-29 17:46 | cobalt | Target Version | => 1.4 |
2014-12-29 17:46 | cobalt | Description Updated | View Revisions |
2014-12-29 17:46 | cobalt | Additional Information Updated | View Revisions |
2014-12-29 17:46 | cobalt | Note Added: 0011131 | |
2014-12-29 17:49 | Torr Samaho | Note Added: 0011132 | |
2014-12-31 10:15 | Torr Samaho | Note Added: 0011145 | |
2014-12-31 10:56 | Torr Samaho | Note Added: 0011146 | |
2014-12-31 13:58 | Leonard | Note Added: 0011153 | |
2015-01-01 17:02 | Torr Samaho | Note Added: 0011163 | |
2015-01-01 18:13 | Arco | Note Added: 0011170 | |
2015-01-01 18:13 | Arco | Status | needs testing => resolved |
2015-01-01 18:13 | Arco | Fixed in Version | => 2.0 |
2015-01-01 18:13 | Arco | Resolution | open => fixed |
2018-09-30 23:10 | Blzut3 | Status | resolved => closed |
Copyright © 2000 - 2024 MantisBT Team |