generated from Modding/greenhouse-multiloader-template
[NeoForge 1.21.1] Server thread hangs when creating new world in large modpack #3
Labels
No labels
Compat
Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Port
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
End of Life
Reviewed
Invalid
Reviewed
Won't Fix
Security
Status
Abandoned
Status/Accepting External PR
Status
Blocked
Status
Need More Info
Status
Needs Triage
Testing
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Modding/menderman#3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
With Menderman installed, the game freezes for an indefinite amount of time when generating a new world. This is in a particularly large NeoForge 1.21.1 modpack, so it's likely related to some other mod, but the limited amount of debugging information makes it difficult to narrow down. Attached are a thread dump from
jstackand thelatest.logfile.Something is very wrong here. It is a difficult task to narrow down.
Somehow some of my component generation logic is recursing when it shouldn't be.
Could I have your full mod list? I want to see if there are any standouts in the crowd.
I've discovered that the game does eventually load, it just takes a little while...
(this was with a logger added to print the name of every item as the registry was iterated through in
MendermanDefaultComponents#createFallbackRepairRequirements(in case it was getting stuck on one in particular), so the load time in practice may be slightly less)Attached is a manually triggered crash report that should contain my full list of mods.
EDIT: Without the debugging log messages:
Adding
if (!defaultInstance.isDamageableItem()) continue;before thegetRepairItems(Item)Listcall reduces the world load time significantly:@unilock wrote in #3 (comment):
Oh! Awesome! Thanks for investigating. I'll do exactly that as soon as I get to updating.
This is still about 60 seconds more than it would be without Menderman entirely, but it's definitely an improvement.
For the record,
ItemStack#isDamageableItemis called inAnvilMenuas well (prior toItem#isValidRepairItem), so it shouldn't cause anything unintended in Menderman.EDIT: Maybe it would be helpful to log before and after Menderman calculates repair items? I.e. with a timer, like what ModernFix does for world load time.
@unilock wrote in #3 (comment):
I guess minor update, I've implemented these changes on the 26.1 branch, but I still need to implement these changes and a semi-old update on 1.21.1.
This will be the final update for 1.21.1 because continued maintenance is strenuous for me.
Understandable. I very much appreciate the work done so far!
Hi, I have fixed the bug as of commit.
d20cc8aadfIgnore that it's merged into another commit, I'm just glad that it's done.
Thank you so much!!