project reality header
Go Back   Project Reality Forums > PR:BF2 Mod Forums > PR:BF2 General Discussion
16 Jan 2019, 00:00:00 (PRT)
Register Forum RulesDeveloper Blogs Project Reality Members List Search Today's Posts Mark Forums Read
PR:BF2 General Discussion General discussion of the Project Reality: BF2 modification.

Reply
 
Thread Tools Display Modes
Old 2019-01-02, 23:15   #1
MooseBoys
Supporting Member
Lightbulb Server Crash Mitigation

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.
MooseBoys is offline Reply With Quote
Old 2019-01-03, 08:38   #2
[R-DEV]Mineral
PR:BF2 Lead Designer
Supporting Member
PR Server License Administrator

Mineral's Avatar
Default Re: Server Crash Mitigation

No this isnt possible. Engine isn't open source. Can't change things like this

Mineral is offline Reply With Quote
Old 2019-01-04, 01:43   #3
Wicca
Supporting Member
PR Server License Moderator

Wicca's Avatar
Default Re: Server Crash Mitigation

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.


Xact Wicca is The Joker. That is all.
Wicca is offline Reply With Quote
Old 2019-01-13, 08:49   #4
MooseBoys
Supporting Member
Default Re: Server Crash Mitigation

Quote:
Originally Posted by Mineral View Post
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.
MooseBoys is offline
Last edited by MooseBoys; 2019-01-13 at 22:10..
Reply With Quote
Old 2019-01-13, 22:17   #5
MooseBoys
Supporting Member
Default Re: Server Crash Mitigation

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.
MooseBoys is offline Reply With Quote
Reply


Tags
crash, mitigation, server
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 18:32.