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

Black screen hanging during transitions between maps #994

Open
MaxCWhitehead opened this issue May 18, 2024 · 2 comments
Open

Black screen hanging during transitions between maps #994

MaxCWhitehead opened this issue May 18, 2024 · 2 comments
Assignees
Labels
kind:bug Something isn't working

Comments

@MaxCWhitehead
Copy link
Collaborator

Description

I've repro'd this 2 or 3 times, sometimes when screen goes black during map transition, it gets stuck for all clients. Not easy to repro when I want it - but also not super rare it seems.

It is black while new ggrs session is synchronizing clients, before first advance of net session runner + map loads. I have seen this occur after both clients ggrs logged that they are synchronized, but something seems to go wrong. I suspect GGRS is still returning NotSynchronized, likely due to a disconnect.

Need to log disconnects by default to help see, but I'm not sure it's quite that simple. I tried interrupting network during map transition, and I saw a warning that socket timed out, but ggrs never actually give a disconnect event after the 2s threshold.

I think action items are:

  • Better logging on disconnect / waiting for sync (this is spammy tho so need to sort something out, maybe use net debug window to expose deeper ggrs state without log spam).
  • make sure that on unrecoverable disconnect (not just net interrupt) this is logged and player returns to menu, make it obvious we have unrecoverable failure. This way can confirm is DC and not just some other hung state.

To Reproduce

Play network games, see if it gets stuck on map transition.

Expected Behavior

No response

Additional Context

No response

Log Messages

No response

@MaxCWhitehead MaxCWhitehead added the kind:bug Something isn't working label May 18, 2024
@MaxCWhitehead
Copy link
Collaborator Author

MaxCWhitehead commented Jun 2, 2024

It seems likely this is timeout related - I found can reproduce by pausing the game on one client before round transition. Need to make network interrupts recoverable - or keep ggrs session live / let it sync even when game is paused? Maybe in online play should not be able to actually pause game, only open the menu?

@MaxCWhitehead MaxCWhitehead self-assigned this Jun 5, 2024
github-merge-queue bot pushed a commit that referenced this issue Jun 8, 2024
During a game, if all other players have been disconnected, UI pop-up
will notify player providing button to return to main menu.

If one player but not all have disconnected, going to have game keep
going / figure out how to handle this separately.

Relates to #994, will not fix
anything, but if hung due to disconnect, will inform player at least.

Depends on fishfolk/bones#409, CI will fail
until merged + update bones version.
@MaxCWhitehead
Copy link
Collaborator Author

MaxCWhitehead commented Jun 11, 2024

Disconnects in game should now notify player instead of just hanging. Net debug window (once update bones version) should show synchronization status / if any players are disconnected, so if do end up in a hung state, a screenshot / review of net debug window + logs could still be some useful context. The pause menu causing disconnect is also fixed.

The open question is still why might fail to synchronize / why get a disconnect on map transitions. Next step is probably to get more info next time reproduce, or review the the timeouts in ggrs involved and see if they are reasonable. It seems likely will no longer hang but indicate a disconnect in UI instead, but will see.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant