-
-
Notifications
You must be signed in to change notification settings - Fork 21.6k
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
Invalid RIDs detected upon opening the Editor #64199
Comments
CC @tinmanjuggernaut |
The other problem as I mentioned in the PR, is that this error message does not distinguish between a NULL RID and a RID not found. |
We can add the differentiation between null and not found. @Rubonnek The PR is working as intended. You are building a development branch. The error means someone introduced a bug in the editor that is attempting to free invalid RIDs. If you build with tracking rids, it will hopefully tell you where in the engine code the bug is coming from. scons rids=tracked_handles See #54907 |
I'm not getting any RID errors with a Is this a fork PumpUpTheJams#1 and not the official 3.x? |
I never meant to imply it wasn't. My intention was simply to expose the error messages because these weren't showing up in the Editor.
I just rebuilt the latest The NULL RID seems to be related to a Here's a backtrace:
The
I suppose the other invalid RIDs I see may be caused by ClassDB as well. |
It's fine. :)
You're always supposed to see the messages when there are RID related bugs. With tracked handles, you're supposed to see more messages, as shown in that PR I sent. Didn't you get a dump of the RID database on exit? The backtrace is helpful.
No, the errors are caused when some class requests a resource from a server, then they invalidate it (often by freeing it), then they try to free it again. The errors come as a result of a call to
Indeed, GIProbe must be mishandling it's gi_probe RID somewhere. Line 530:
I don't see how the RID is used or accessed on a cursory glance. At the moment I'm working on a PR to expand the error messages. Tracking down the actual cause of the bug in GIProbe might take some time by me or others. Are you using GLES2? I get these errors on GLES2 but not 3 on Win11. Here's my new error message, meaning the passed RID is null, presumably from
@lawnjelly I do not get the RID tracking database either. Scons reports |
That is because it isn't finding any leaks, it doesn't output anything if no leaks are detected. Maybe I'll change it so it reports "no leaks detected" rather than no output to show it is working. Can't remember why I disabled this output. Maybe there is no leak - either an object is deleted earlier, or never created. |
@Rubonnek Please confirm that you are using GLES2. Here's the likely problem.
GIProbe isn't supported by GLES2. But since it's loading it anyway, if GIProbe checks whether the RID is valid before freeing, that should fix the errors. I tried it and am down to 3 instead of 4 errors. There are likely 3 more classes doing the same thing. |
The answer seems to be simple - there is no GI probe in GLES2? So the RID is returned as NULL. There is no problem, it is just #55764 reports it as a problem. |
Since we consider attempting to free an invalid RID as a problem (Re: #53374), classes like GI Probe should take better care of their RIDs and only free them if valid. |
I did not -- not when using GLES2 at least.
This is it. Both of the projects I tested in I was using GLES2. I don't get the invalid RIDs when using GLES3. |
@akien-mga This should have been closed by #64235. |
Closed by #64235 . |
Godot version
3.x at a7559fc
System information
Arch Linux
Issue description
By just opening the Editor you'll see several invalid RID error messages in the terminal.
These messages started appearing in
3.x
after #55764 was merged.Steps to reproduce
godot -e --path /path/to/project
Minimal reproduction project
An empty new project
is enough.using GLES2 suffices.The text was updated successfully, but these errors were encountered: