I am pretty confident my world server encountered this issue after doing a code inspection and it seems the eqemu code is still susceptible to this problem.
https://github.com/EQEmu/Server/blob...ction.cpp#L293 ->
https://github.com/EQEmu/Server/blob...ction.cpp#L310 ->
https://github.com/EQEmu/Server/blob...ction.cpp#L504
we double lock MState which is not possible so it becomes a deadspin/deadlock whatever you want to call it.
Need to remove the lock of MState in ClearBuffers:
https://github.com/EQEmu/Server/blob...ction.cpp#L504
So far no issues in my testing, but its hard to test all disconnect paths manually so gotta let it run.