alliedmodders / sourcemod

SourceMod - Source Engine Scripting and Administration
http://www.sourcemod.net/
991 stars 428 forks source link

Synergy player reconnecting causing server crash #952

Open yarik2720 opened 5 years ago

yarik2720 commented 5 years ago

Help us help you

Environment

Description

Server crashes when player reconnecting, no matter if it is disconnect by user or client time out

Problematic Code (or Steps to Reproduce)

Player disconnect and reconnecting on the same map

Logs

Balimbanana commented 5 years ago

This appears to be a Synergy problem to do with level transitions attempting to restore the player edict and load data from previous levels. A way to reproduce it is by going to d2_coast_07, proceed to 08, enable trigger_coop and trigger_changelevel, walk back to 07. If the server doesn't crash on load already, running retry in console will crash the server upon OnClientPutInServer attempting to load player data from multiple sources. It can also happen on random regular maps as well, not just in this situation. But this is one that I can reproduce at least 90% of the time.

I have written a plugin in SourceMod called SynSaveRestore which disables Synergy's transition data and rebuilds the relevant data in SourceMod to be loaded on transition on the next map. This appears to have solved the reconnect crash bug. Now there are just a few things to iron out for what should/shouldn't transition, but mainly, it is stable.