Page 1 of 1

Server Crash Mitigation

Posted: 2019-01-02 23:15
by MooseBoys
I've noticed that recently (on HOG at least), server crashes occur almost exclusively on map changes. At the same time, the server seems to recover almost immediately and load the starting map in the rotation.

Fundamentally there are two problems with a server crash on map load. First, the clients are disconnected and need to manually reconnect. Second, a different map than intended is loaded (rotation starting-map). Both of these cause players to stop playing out of frustration, prematurely killing the server for the day.

I know the root cause of server crashes is unknown, but would it be possible to have the client and server work together to mitigate them? For example, here is how I assume the current system works:

Normal Transition
  1. Win condition reached; server sends clients round-complete signal.
  2. Server sends clients next-map info.
  3. Clients begin loading next-map.
  4. Server begins loading next-map.
  5. Clients finish loading next-map and reconnect to server.
Crash Transition
  1. Win condition reached; server sends clients round-complete signal.
  2. Server sends clients next-map info.
  3. Clients begin loading next-map.
  4. Server crashes, restarts, begins loading starting-map.
  5. Clients finish loading next-map and try to reconnect to server.
  6. Server is in a state unexpected by the client (different map), or maybe there's a queued disconnect message, so the client disconnects from the server.
Proposal
  1. Win condition reached; server sends clients round-complete signal.
  2. Server sends clients new soft-disconnect signal.
  3. Server sets starting-map to next-map, and intentionally restarts.
  4. Clients stay at round-complete screen and silently query for server-available.
  5. On server-available, clients connect to newly-restarted server as fresh clients. (on timeout, client does a full disconnect)
This could also be combined whereby the server attempts a normal map-load, and on success, clients load normally, but on a crash, clients automatically reconnect. I realize that this would effectively force a team-scramble on crash, but it would at least solve the two problems identified above, namely that clients would automatically (and silently) reconnect, and that the next-map would still be what was intended.

Re: Server Crash Mitigation

Posted: 2019-01-03 08:38
by Mineral
No this isnt possible. Engine isn't open source. Can't change things like this

Re: Server Crash Mitigation

Posted: 2019-01-04 01:43
by Wicca
Is it possible to move the server join function to an external program, and then simply restart the server on each next map?

Similar to how battlefield 3 worked.

Re: Server Crash Mitigation

Posted: 2019-01-13 08:49
by MooseBoys
Mineral wrote:No this isnt possible. Engine isn't open source. Can't change things like this
How was the auto-join queue implemented? This was not in vBF2, and it seems like an auto-rejoin system would be able to use the same mechanism.

Re: Server Crash Mitigation

Posted: 2019-01-13 22:17
by MooseBoys
Totally different idea, you could also have the launcher start a background process that watches the pr exe. On disconnect (I'm sure there's an ETL event or something you can watch for), inject input events to automatically reconnect to the same server.