Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Player's game crashes when spectator stops spectating them #66

Open
ctmatthews opened this issue Nov 30, 2021 · 0 comments
Open

Player's game crashes when spectator stops spectating them #66

ctmatthews opened this issue Nov 30, 2021 · 0 comments

Comments

@ctmatthews
Copy link

ctmatthews commented Nov 30, 2021

This happens 100% of the time for me in both the latest version (commit 7ddadef) and the initial GitHub commit (commit 02b9eff), both in my own game and in the VectorWar sample app.

Repro steps

  • Download the GGPO repository (commit 7ddadef)
  • Run configure_windows.cmd, open GGPO.sln, rebuild solution in Release/x64 (Windows 10, Visual Studio 2019 version 16.8.5)
  • Run start_vectorwar_2p_4s.cmd
  • Close one of the spectator windows
  • Roughly one second later, player one (who was connected to that spectator) will get an error window with the following text:
GGPO Assertion Failed
Assertion: _size != (N-1) @ C:\Dev\ggpobugtest\ggpo-master\src\lib\ggpo\ring_buffer.h:39 (pid:16416)
  • Clicking 'OK' on that error window causes the game to close

Here's the call stack I get when running player one in a Debug build:

 	VectorWar.exe!Platform::AssertFailed(char * msg) Line 23	C++
>	VectorWar.exe!RingBuffer<GameInput,64>::push(const GameInput & t) Line 39	C++
 	VectorWar.exe!UdpProtocol::SendInput(GameInput & input) Line 106	C++
 	VectorWar.exe!Peer2PeerBackend::DoPoll(int timeout) Line 139	C++
 	VectorWar.exe!Peer2PeerBackend::IncrementFrame() Line 335	C++
 	VectorWar.exe!ggpo_advance_frame(GGPOSession * ggpo) Line 139	C++
 	VectorWar.exe!VectorWar_AdvanceFrame(int * inputs, int disconnect_flags) Line 351	C++
 	VectorWar.exe!VectorWar_RunFrame(HWND__ * hwnd) Line 426	C++
 	VectorWar.exe!RunMainLoop(HWND__ * hwnd) Line 84	C++
 	VectorWar.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * __formal, wchar_t * __formal, int __formal) Line 181	C++

And here's a video of it:

ggpo_crash_when_spectator_leaves.mp4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant