bug: IsDisposed
on the player can be falsely set to true
#1598
Labels
bug
Something isn't working
needs verification
Pending confirmation that the bug exists by another user.
Description
Due to async logic, it is possible for a player to be logged in such that their server entity's "IsDisposed" property is set to true. This can result in weird behavior, such as not being able to send out party invites.
Steps to Reproduce
This is very hard to reproduce. I only think I stumbled across it because I have a more mature project, and saving to the DB can take more time.
That being said, the core problem can sometimes be replicated by:
This problem exists because, at logout, we use the DbInterface's pool to queue a work item:
Which does the marking of
IsDisposed
.However, since this is in the DbPool, it is theoretically possible for a player to log back in while the pool is at work, and the pool may complete its job after the player logs back in.
Version with bug
7.1.22
Last version that worked well
Unknown, probably before the DbInterface pool
Affected platforms
I was not able test on other platforms
Did you find any workaround?
No. Perhaps we could not allow the player to log back in until their previously logged out-of entity has been disposed.
Relevant log output
No response
Duplicate Bug Check
The text was updated successfully, but these errors were encountered: