I'm currently talking to Bitdefender tech support about memory leaks when viewing MJPEG Streams.
I've found that I can only reproduce the memory leak when viewing the stream Octopi has created. I tried a Windows App creatively named "MJPEG Streamer", and the memory leak does not occour.
The lowdown is that if I view the Octoprint MJPEG stream on either of my Windows Machines,
Bitdefender will leak in it's own application and the Non-Paged Pool, causing my system crawl to a halt.
I'd like some insight from this end of the problem, if possible.
Please let me know what information I can provide.
- OctoPrint 1.5.3
- Python 3.7.3
- OctoPi 0.18.0
Have you tried using different browsers? Do you view the stream inside OctoPrint or from the stream URL itself?
I've tried New Edge and Firefox portable.
Both cause memory leaks, though it takes a small while longer to leak when viewing directly (outside of Octoprint)
This is most likely a client side issue, I'm not aware of how the streamer could cause memory leak, if there is an issue with the client watching the stream its usually the client. Interesting that it persists across those browsers, since they are using different rendering engines.
What about, instead of a browser something like VLC? You can open network streams there. That would be a completely different environment, if it behaves the same I would be surprised.
Looks like it doesn't cause an increase in Bitdefender's RAM usage, while direct MJPEG still does. (as a sanity check)
Change in behaviour, as in this boot Bitdefender's RAM usage and the Non-Paged Pool stayed at normal levels, and instead Edge's GPU Process slowly increased.
Could this to be a certain header, format or etc inside the MJPEG stream that Octoprint/Octopi/MJPEG-Streamer streams that causes the memory issues in these programs?
This time it's only happened through Octoprint in normal and safe mode. Not the direct stream
I ran into exactly the same issue with multiple Octoprint servers when viewing the webcams on my Windows machine with Bitdefender. Ultimately I found out it's the "Online Threat Prevention" module causing this. To solve it simply create an exception in BD for your octoprint's IP or local domain name.
After this change I can monitor the webcam for hours without slowdown or the whole system slowly locking up. The memory usage of Bitdefender isn't creeping up anymore.
Great! I'll let Bitdefender know. That's great news. Unfortunately, it's Edge's GPU Process that increases now, not Bitdefender... sigh