Memory leak 😓

For the last few days, I have been having this issue where Rhino grows constantly in memory usage until it starts freezing and becomes unusable. As soon as I close the model, the problem apparently disappears, but then gradually grows again.
I tested a bunch of plugins and assume one of them must be the cause. What is troubling is the problem persists after I cleaned everything. I checked the package manager, cleared user appdata, programdata reinstalled Rhino and updated the Graphics driver. I can’t seem to solve this one.
Other users with identical specs don’t have this issue.
The issue happens with any template even an empty file and even if I start Rhino in safe mode.
Open for suggestions.

1 Like

Well, you need to isolate which plugin is the cause, there is nothing anyone can do until then, there is magical generic fix to an apparent memory leak.

it seems that Rhino.BisplayBitmap has disposing issues.

ok, sure… I guess I’m hoping to get advice, ideas, methods, tools on how to detect the cause of this issue. What if it isn’t a plug in? Would certain plugins affect rhino in safe mode?
The only thing I can come up with at this stage is reimaging the damn PC, and I’m really hoping to avoid that.

Post the results of the Rhino command _SystemInfo, then we don’t have to guess as to say what Rhino version you are using, or what plug-ins still may be loaded if any.

Rhino 7 SR28 2023-2-27 (Rhino 7, 7.28.23058.03001, Git hash:master @ 4ffc5d7156fbccf2a5d9fcc80e522b3851bc7f6c)
License type: Commercial, build 2023-02-27
License details: Cloud Zoo

Windows 10 (10.0.19044 SR0.0) or greater (Physical RAM: 32Gb)

Computer platform: LAPTOP - Plugged in [100% battery remaining]

Standard graphics configuration.
Primary display: DisplayLink USB Device (DisplayLink) Memory: 0MB, Driver date: 9-8-2020 (M-D-Y).
> External USB display device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0
Primary OpenGL: NVIDIA RTX A2000 Laptop GPU (NVidia) Memory: 4GB, Driver date: 3-16-2023 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 531.41
> Integrated accelerated graphics device with 4 adapter port(s)
- Video pass-through to primary display device

Secondary graphics devices.
DisplayLink USB Device (DisplayLink) Memory: 0MB, Driver date: 9-8-2020 (M-D-Y).
> External USB display device with 0 adapter port(s)
- There are no monitors attached to this device. Laptop lid is probably closed
Citrix Indirect Display Adapter (Citrix Systems Inc.) Memory: 0MB, Driver date: 1-23-2019 (M-D-Y).
> External USB display device with 8 adapter port(s)
- There are no monitors attached to this device. Laptop lid is probably closed
DisplayLink USB Device (DisplayLink) Memory: 0MB, Driver date: 9-8-2020 (M-D-Y).
> External USB display device with 0 adapter port(s)
- There are no monitors attached to this device. Laptop lid is probably closed
Intel(R) UHD Graphics (Intel) Memory: 1GB, Driver date: 6-24-2021 (M-D-Y).
> Integrated graphics device with 4 adapter port(s)
- Secondary monitor is laptop’s integrated screen or built-in port
DisplayLink USB Device (DisplayLink) Memory: 0MB, Driver date: 9-8-2020 (M-D-Y).
> External USB display device with 0 adapter port(s)
- There are no monitors attached to this device. Laptop lid is probably closed

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 3-16-2023
Driver Version: 31.0.15.3141
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 4 GB

Rhino plugins that do not ship with Rhino
C:\Program Files\AVAIL\AVAIL Browser for Rhino\AVAIL.RhinoPlugin.Rhino7.rhp “AVAIL.RhinoPlugin” 4.6.0.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 7\Plug-ins\Commands.rhp “Commands” 7.28.23058.3001
C:\Program Files\Rhino 7\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 7\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 7.28.23058.3001
C:\Program Files\Rhino 7\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 7.28.23058.3001
C:\Program Files\Rhino 7\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino 7\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 7\Plug-ins\RhinoCycles.rhp “RhinoCycles” 7.28.23058.3001
C:\Program Files\Rhino 7\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 7.28.23058.3001
C:\Program Files\Rhino 7\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 7\Plug-ins\Displacement.rhp “Displacement”

Uninstalled Avail now, but issue persists

This is a caching issue, not a disposing issue. And we are looking into it.

– Dale

1 Like

still no solutions :sob:

Hi Guido -

I don’t think I’ve ever seen a system report like this.
What’s up with all the display links, and Citrix?
Are you using any peripherals? If so, how and where are they connected? What happens when you disconnect everything?
-wim

At this point we can’t even tell if it actually is a “memory leak.” How long does this take? Have you tried disabling the Avail plugin?

That’s au USB hub connecting to keyboard & 2nd screen. Sorry if it’s confusing.

Rhino 7 SR28 2023-2-27 (Rhino 7, 7.28.23058.03001, Git hash:master @ 4ffc5d7156fbccf2a5d9fcc80e522b3851bc7f6c)
License type: Commercial, build 2023-02-27
License details: Cloud Zoo

Windows 10 (10.0.19044 SR0.0) or greater (Physical RAM: 32Gb)

Computer platform: LAPTOP - Plugged in [100% battery remaining]

Hybrid graphics configuration.
Primary display: Intel(R) UHD Graphics (Intel) Memory: 1GB, Driver date: 10-26-2022 (M-D-Y).
> Integrated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
Primary OpenGL: NVIDIA RTX A2000 Laptop GPU (NVidia) Memory: 4GB, Driver date: 3-16-2023 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 531.41
> Integrated accelerated graphics device with 4 adapter port(s)
- Video pass-through to primary display device

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 3-16-2023
Driver Version: 31.0.15.3141
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 4 GB

Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 7\Plug-ins\Commands.rhp “Commands” 7.28.23058.3001
C:\Program Files\Rhino 7\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 7\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 7.28.23058.3001
C:\Program Files\Rhino 7\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 7.28.23058.3001
C:\Program Files\Rhino 7\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino 7\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 7\Plug-ins\RhinoCycles.rhp “RhinoCycles” 7.28.23058.3001
C:\Program Files\Rhino 7\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 7.28.23058.3001
C:\Program Files\Rhino 7\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 7\Plug-ins\Displacement.rhp “Displacement”

Actually, this morning the issue appears to have mysteriously vanished. Rhino’s empty file Memory is happily stable at 450MB.
I spent a few hours with IT on Friday evening running Lenovo’s “system update” app that hadn’t been installed; updating the BIOS amongst various drivers. It appeared at the time not to have fixed the problem after restarting. Maybe the weekend long power-cycle did it :thinking:. Anyways, Thanks to all, and hopefully it is not coming back :crossed_fingers:.

Yes, I had tried that.

Memory was increasing roughly @5MB*sec on an empty file until reaching critical size.

with multiple instances of Rhino open, RAM usage would increase more rapidly and often would cause crashes with no report requests.

Ok, I probably spoke too early.
The problem is back and I didn’t really do anything except reopen an old file.

Apart from the possibility of a potential Rhino bug,

you could check what dlls are loaded during runtime. Process Explorer or other tools can do this. There is a possibility that you still load some 3rd party tool, either because some files where not removed or potentially there is a service running, injecting something into any active Rhino process it can detect.
You can further use tools like x64dbg to activily debug Rhino on its C++ part and DNSpy to debug Rhino on its .Net part.

Could you also exactly tell us, what you did before this occured? Which plugins did you try? If you are coding tools, are you using any sort of caching and event based mechanism?

In any case, within a companies network, it is extremly risky to download Rhino and GH plugin of untrusted origin. Its an big entry door for any malicious activity. I wouldn’t trust all plugins, and you shouldn’t do that either. Even if McNeel is scanning them on Food4Rhino, I doubt this is a sufficient security layer! But even if there is no problem with malware, some (hobby) developers might introduce bugs very hard to debug, preventing you from doing your actual work.

1 Like

Thanks for your comprehensive response.
It wold have been very interesting to test, unfortunately It arrived a few hours after I formatted the laptop. All is working fine now.
I would hate to be wrong, but I believe the problem started after installing the “urbano” plug-in.
After removing, I did have a look if I could spot any running services connected, but nothing in the name or description caught my eye.
I might try using a VM if I test plugins in the future.

1 Like

Hello, I also encounter this problem periodically. I have never used the “urbano” plugin, so I assume that maybe more than one plugin causes such issues. I also solve this problem by formatting my laptop.

Ok, formatting is probally the best and most secure solution here.

At least Urbano comes with an msi installer. So if you are not deinstalling it by using the msi installer, it could be part of the problem. Hard to tell. In any case, when using a debugger you can at least see which function is called again and again. This gives a good hint about whats causing this. What I usually do if I’m interessted in some external libraries of uncertain origin, I do have a look at the sources, by either using the OpenSource repository (if something like this exist), or I do check the sources using a decompiler. Then I’m explicitly looking for some webrequests, urls and other odd things. It also makes sense to explicity search for known security problems using a simple google search. Investing 30-60 minutes, might save you a lot of trouble later on. Setting up a VM for this is kind of an overkill, and basically you can also detect if you are on a VM or not, so it might give you a false sense of security. However anything helps.

Anyway… problem solved I guess. :slight_smile:

1 Like

I could be wrong about Urbano. It’s a good tool and seems well-built. I would hate to smear over the hard work someone put into developing it.
What plugins have you installed? there may be some other one that we both installed.