Memory Leak in ModBors Monitoring Service
Just curious if you are aware that you have a memory leak in this service. It starts with 36MB of memory used, once it has been running a day it has already consumed nearly 2GB of memory. This left unchecked will consume most peoples available memory in a few days.
Tested last night and this morning and got over 500mb both times but the service did not stop intermittently as it did before. I did verify http://localhost:42001/version as 1.0.15.
@John-L You need to replace the provided exe in two places. These are the steps that worked for me:
- Close Modbros App
- Stop Service
- Overwrite service executable in both these places:
- C:\Users\[USER]\AppData\Local\MoBro_Local
- C:\Users\[USER]\AppData\Local\MoBro\app-1.0.0-beta7\resources\resources\libs
- Restart Modbros App, and hit yes when it detects the service is not running
- Open ‘http://localhost:42001/version’ in a browswer to confirm version number
Tested last night and this morning and got over 500mb both times but the service did not stop intermittently as it did before. I did verify http://localhost:42001/version as 1.0.15.
@John-L You need to replace the provided exe in two places. These are the steps that worked for me:
- Close Modbros App
- Stop Service
- Overwrite service executable in both these places:
- C:\Users\[USER]\AppData\Local\MoBro_Local
- C:\Users\[USER]\AppData\Local\MoBro\app-1.0.0-beta7\resources\resources\libs
- Restart Modbros App, and hit yes when it detects the service is not running
- Open ‘http://localhost:42001/version’ in a browswer to confirm version number
there's 4 thing in the task manager, 3 Mobro - Modbros Monitoring services, that stay around 40mb. And one ModBros Monitoring Service that grows forever (that's with the fix #3, v .15) Started yesterday, and the last one was 2gig fat. I confirmed the 1.0.15 via the link provided
Thanks again for testing to all of you guys!
So we've talked a bit and the situation is as follows:
From what we've seen in the past weeks, it seems to be pretty safe to say that the memory leak is either in OpenHardwareMonitor or LibreHardwareMonitor or even both (since Libre is a fork of Open). From within the service I can't really do more to clear the memory than I already tried in the past versions, which looks like it's not fixing the issue. This makes sense since the leaked memory is probably linked to the service process itself, which will only be cleared on a restart.
For version 2.0 we have already planned to redesign and rebuild the service completely in a more modular way. So you will be able enable/disable the individual data plugins. This would also allow you to circumvent the leak by just opting to not use Open or Libre.
But since this is not possible yet and it's gonna take quite some time until we're done with this rebuild, we've opted to go this route:
The service will periodically restart itself every 1h. We've also adopted the desktop MoBro app to deal with the situation, so it won't show an error or prompt you to restart the service if it's just not available for a short period of time.
You can download a new version here
A simple normal install is enough. Would be nice if you guys could again test this, so we can verify if it actually “fixes” the issue before rolling it out to everyone.
Also support for Aida64 as a data plugin is coming. Might be of interest for you @Shane ;)
@waxonwaxoffmyson thanks a lot for the offer, really appreciated! But currently I don't think that it would help us all that much, since we already know that the problem seems to be in a library we're using. And currently I don't intend to go on a deep dive into that code to fix this, as we've got lots of other stuff going on already..
@Seraksab I think it's working! After a couple hours I am sub-50mb on all processes. Thanks for your diligence.
@Seraksab I can vouch, it's working super fine now, been on for 12 hours, the service is 40meg vs 1gb before, it's working!
@Seraksab Working for me also now, keeps the services around <50, thanks.
i have just downloaded this new version, installed it and will check back on it in a couple of hours
now over 2 hours since i installed this new version and all is good
Thanks again for testing to all of you guys!
So we've talked a bit and the situation is as follows:
From what we've seen in the past weeks, it seems to be pretty safe to say that the memory leak is either in OpenHardwareMonitor or LibreHardwareMonitor or even both (since Libre is a fork of Open). From within the service I can't really do more to clear the memory than I already tried in the past versions, which looks like it's not fixing the issue. This makes sense since the leaked memory is probably linked to the service process itself, which will only be cleared on a restart.
For version 2.0 we have already planned to redesign and rebuild the service completely in a more modular way. So you will be able enable/disable the individual data plugins. This would also allow you to circumvent the leak by just opting to not use Open or Libre.
But since this is not possible yet and it's gonna take quite some time until we're done with this rebuild, we've opted to go this route:
The service will periodically restart itself every 1h. We've also adopted the desktop MoBro app to deal with the situation, so it won't show an error or prompt you to restart the service if it's just not available for a short period of time.
You can download a new version here
A simple normal install is enough. Would be nice if you guys could again test this, so we can verify if it actually “fixes” the issue before rolling it out to everyone.
Also support for Aida64 as a data plugin is coming. Might be of interest for you @Shane ;)
@waxonwaxoffmyson thanks a lot for the offer, really appreciated! But currently I don't think that it would help us all that much, since we already know that the problem seems to be in a library we're using. And currently I don't intend to go on a deep dive into that code to fix this, as we've got lots of other stuff going on already..
@Seraksab will we be able to export and import out Sensory Panels or take advantage of some ne customization options through the next Build with the Plug-in for Aida64?
Looks like its been working as intended. ~2 hr snippet showing hourly service reset.
I was actually just playing with a scheduled task to restart the service every hr. I'll download and give it a go.
Well, finally. Glad to see this “fixes” the memory issue :)
@Seraksab will we be able to export and import out Sensory Panels or take advantage of some ne customization options through the next Build with the Plug-in for Aida64?
There won't be any integration with their sensor panels or other customization options.
@Seraksab , it's not disappointing. I am unable to use HWINFO because it flips out my Commander Pro from Corsair. Aida64 doesn't so big win for me!
Was pulling data from HWInfo suspended for the beta-8 version you posted here in the forum? I have HWInfo running and MoBro says it isn’t detected. I reinstalled both and the issue persists.
That said, I’m happy to report that the service reset you implemented has stopped the issue of high RAM usage for me as well.
Was pulling data from HWInfo suspended for the beta-8 version you posted here in the forum? I have HWInfo running and MoBro says it isn’t detected. I reinstalled both and the issue persists.
That said, I’m happy to report that the service reset you implemented has stopped the issue of high RAM usage for me as well.
No we did not, HWiNFO ist still supported.
But if you just updated to their latest 7.00 version you should check out this summary we just posted.
@Seraksab , it's not disappointing. I am unable to use HWINFO because it flips out my Commander Pro from Corsair. Aida64 doesn't so big win for me!