-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
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
Change MessageQueue to a page allocator to prevent overflow #35653
Comments
For the reference, I fixed the outdated setting name in the error message with cab555bb, so from now on errors will be:
|
My commit doesn't fix #35652 though. |
How about increasing the default value to something like Some other projects which do happen to set the size to Is the value of |
1024 KB was low enough that many users seem to hit it, which can lead to the editor freezing. The proper fixed as described in godotengine#35653 would be to implement a page allocator to prevent this overflow, but as a stop-gap measure, we can increase the default value to a more lenient 4096 KB which should be high enough for the vast majority of use cases. The default size can be brought down again if/when godotengine#35653 is properly fixed, and if it's actually relevant from a memory point of view.
1024 KB was low enough that many users seem to hit it, which can lead to the editor freezing. The proper fixed as described in godotengine#35653 would be to implement a page allocator to prevent this overflow, but as a stop-gap measure, we can increase the default value to a more lenient 4096 KB which should be high enough for the vast majority of use cases. The default size can be brought down again if/when godotengine#35653 is properly fixed, and if it's actually relevant from a memory point of view. (cherry picked from commit 5009ba5)
* Uses simple vector resizing (po2) Fixes godotengine#35653 Supersedes godotengine#35658
Hey all I'm getting this error in 3.x,
I'm not sure if this is related to this issue. EDIT: I fixed this problem by making some of my UI code use called deferred. Maybe removing a child and then adding it back to the scene causes too many updates? |
Related to this issue I also posted in recently : #71929 (comment) I started off with receiving :
After turning on SDFGI and a few other settings, then trying to change their quality to be lower in the project settings resulted in this + an out of memory exception windows error. I ended up increasing the kb to 10,000 and it seemed to fix it, however I started getting the issue I linked above resulting in this error printing on the console over and over while godot is unresponsive :
So fast forward 2-3 days of this error popping up, I just created a master scene with a canvas layer and crashed. Now I am unable to open the project and I'm receiving the original memory limit error in the console. Edit: Removed 2nd comment as it ended up being unrelated, apologies. |
Fixed in 3.6 by #75527. |
Godot version:
Master (3cfb67e)
OS/device including version:
Any
Issue description:
As discussed a few times on IRC, and exemplified by many bug reports, our current fixed size for the Message Queue is problematic.
It currently defaults to
1024
(seememory/limits/message_queue/max_size_kb
), and many users need to increase it to prevent overflow when handling a large amount of messages (which can happen easily in the editor when using e.g. large TileSets #29238 or Skeletons #35652).As discussed with @reduz, Message Queue should be changed to use a page allocator so that its size can grow as needed, preventing overflows.
Situations which can cause a Message Queue overflow like #29238 or #35652 should however be fixed in the Inspector itself, as even increasing the MQ will just make things functional again, but it will still freeze a long time while populating all those controls.
Example output to help uses find this issue:
The text was updated successfully, but these errors were encountered: