Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible deadlock when recording rollback events #17

Open
RoyCurtis opened this issue Jul 9, 2017 · 0 comments
Open

Possible deadlock when recording rollback events #17

RoyCurtis opened this issue Jul 9, 2017 · 0 comments

Comments

@RoyCurtis
Copy link

RoyCurtis commented Jul 9, 2017

There might be a deadlock bug that happens whilst:

  • The main server thread is recording to the data_rollback table, at the end of a rollback operation, to mark which actions have been rolled back
  • The recording task, in an async thread, is recording actions that are happening in a world

When triggered, the entire server is hung and has to be killed. This bug is not triggered all the time; it appears to be random after a rollback.

Evidence

This issue was reported by @pugabear, who provided two logs of when the server hung after a player performed a rollback:

Theoretical causes / questions

Theoretical solutions

Try moving the rollback code to run in the same thread as recording tasks.

Notes

  • I am making a lot of assumptions here, as all I have to go on are two crash logs. It's entirely possible something else is to blame (e.g. server configuration, other plugins)
  • I've not personally hit this bug yet. Has anybody else, aside from @pugabear, had GPrism hang the server after a rollback?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant