-
-
Notifications
You must be signed in to change notification settings - Fork 604
folia: rollback #global #806
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
base: master
Are you sure you want to change the base?
Conversation
|
after the exams (in about 3 days), I will start correcting it more properly. I think I still have some things to improve. |
src/main/java/net/coreprotect/database/rollback/RollbackProcessor.java
Outdated
Show resolved
Hide resolved
|
Now, i need to test this, I'm sure there have bugs, and i will be looking for them. |
Very nice work! I’ll have a look at this for you when I’m more awake |
R00tB33rMan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At a quick glance, make sure both instances of hanging signs perform as teleportAsync
|
why im so dumb |
|
i just lost a lot of time and effort because i believed the ai that most of the code lines were not adapted for folia. i fixed them, but this led to a great many errors. |
CoreProtect issue (specific to folia and its forks)
When rollback a user's actions within a 100 block radius, the process completes successfully.
However, when performing a "global" radius rollback, which involves processing a large number of chunks (more than 50), the process hangs for 300+ seconds.
The rollback only affects chunks that are currently loaded. Unloaded chunks are ignored but are incorrectly marked in /co inspect as rolledback.
This is caused by the plugin attempting to synchronously load unloaded chunks during the rollback. On folia, this action results in a deadlock, which causes the thread to freeze and skip processing for those chunks.
I resolved this.
Now, the plugin no longer blocks the thread and instead correctly schedules tasks to process chunks after they have loaded. This fixes the issue with freezes and incomplete rollbacks on Folia.
The changes are active only on Folia (and its forks) and do not affect Paper/Spigot (or their forks).