How would you solve that?
-
Maybe use ProcessExplorer to see what threads it's creating. Maybe there's a thread that is leaking the memory, and yet another bug is that when you stop the service, the thread isn't being stopped. Of course, you're not getting paid to find their bugs! I'm curious, what kind of software works only with one kind of software repository? Marc
Marc Clifton wrote:
when you stop the service, the thread isn't being stopped.
Eh? I may be missing something here but doesn't stopping the service require terminating the service's primary thread (actually a thread in the SCM that calls the service entry points)? & once a program's primary thread terminates, any remaining secondary threads are forcibly terminated? Or perhaps the service launches & communicates with a secondary process & it's the secondary process that's leaking memory?
T-Mac-Oz "When I'm ruler of the universe ... I'm working on it, I'm working on it. I'm just as frustrated as you are. It turns out to be a non-trivial problem." - Linus Torvalds
-
Johnno74 wrote:
this is a bug in windows.
There's a couple of ways a program can acquire global resources that will "leak" when a process terminates if they're not freed correctly, e.g.: Memory allocated with GlobalAlloc(), SysAllocString() (& variants) - These resources are valid across process boundaries and if they were automatically released when the allocating process terminated could leave any number of other processes in an indeterminate state. If a GlobalAlloc() handle didn't remain valid after process termination, the clipboard would only ever work while the source application remained active! Out-of process OLE object references (not sure if the default marshaller is supposed to track AddRef/Release counts & perform appropriate releases on process termination, from experience I can only say that I doubt it).
T-Mac-Oz "When I'm ruler of the universe ... I'm working on it, I'm working on it. I'm just as frustrated as you are. It turns out to be a non-trivial problem." - Linus Torvalds
-
How about installing something like a ram optimizer clickety - basically it tries to free memory once the available memory falls below a certain level which you configure. Guy
Continuous effort - not strength or intelligence - is the key to unlocking our potential.(Winston Churchill)
They are just BS, they just use up all your memory so that existing used memory is moved to your swap file.
-
Maybe use ProcessExplorer to see what threads it's creating. Maybe there's a thread that is leaking the memory, and yet another bug is that when you stop the service, the thread isn't being stopped. Of course, you're not getting paid to find their bugs! I'm curious, what kind of software works only with one kind of software repository? Marc
Marc Clifton wrote:
Of course, you're not getting paid to find their bugs!
There was an interesting anecdote included in an article back in the '80s about an American who'd taken a position with a Japanese company. It seems his group had a problem with the control software for some component they used in manufacturing their product. By habit, they'd debugged the code and found the solution to the problem, then came to their new supervisor with the problem and solution. He reported telling them, "Next time, just report the problem, and we'll let the vendor solve it." I have questioned his logic ever since. This is based on my own experience that most software vendors (not all, by any means, and the percentage seemed to go down for a while) will resist any input that their product has a bug - unless, of course, if you could prove it AND you offered a solution for it. Comments, anyone?
-
Hello all, in our department we are using a software that works as a software repository (a kind of subversion) that is the only one that exists/works for the software that we are using. It seems that the service that runs on our server (the one that handles all the queries from our computers) leaks memory. Even if I stop the service it doesn't frees all the memory that it has occupied. I've tried to speak to the manufacturer of that software without result... My only guess is to set up a virtual machine in order to serve that service and make it to reset each day. Any other idea? this is like killing a fly using a thermonuclear bomb... :~ As always thank you in advance.
The Virtual server sounds good but just for argument's sake you could try to write a program that will allocate and then deallocate every single bit of available memory once the service has been stopped. Then restart the service. I would not put my hand in the fire for this method but it may be worth a try - any other non-reboot ideas ?
-
Hello all, in our department we are using a software that works as a software repository (a kind of subversion) that is the only one that exists/works for the software that we are using. It seems that the service that runs on our server (the one that handles all the queries from our computers) leaks memory. Even if I stop the service it doesn't frees all the memory that it has occupied. I've tried to speak to the manufacturer of that software without result... My only guess is to set up a virtual machine in order to serve that service and make it to reset each day. Any other idea? this is like killing a fly using a thermonuclear bomb... :~ As always thank you in advance.
Yes, VM or hardware is the only way to solve a leak that even the OS can't reclaim upon process termination. Of cousre, it also means the OS has a bug, so I'd opt for a hardware solution, or at least a VM made by a different vendor. However.. why are you still using this product, anyway? If the product is really all that bad, and they are not planning to have a fix out for a year (don't forget, plans are always optimistic), aren't you staying with a product whose customer base is defecting? Is that really the horse you want to hitch your company's source code to? I've seen companies fold over such fiascos and wouldn't want to risk my company's source code to a company about to fold with such a serious flaw already in their software. Maybe that's just me though.
patbob
-
Go into the services manager and double-click on the services involved. Look at the top of the dialog for Service name:. Now create a batch file with the following:
sc stop *service name goes here*
sleep 30 ; give it some time to shut down
sc start *service name goes here*Now go into control panel and Scheduled Taks > Add Scheduled Task We had to do this for a 3rd party app which kept dropping its database connection (probably during nightly backups) and wouldn't automatcially restore the connection. The only way to fix it was a restart. So we setup a scheduled task to start and stop the services during the night so all would be good in the morning when the service would acutally get used.
Todd Smith
Likely wouldn't work in this situation- he's reporting that the service isn't deallocating memory on shutdown.
-
The Virtual server sounds good but just for argument's sake you could try to write a program that will allocate and then deallocate every single bit of available memory once the service has been stopped. Then restart the service. I would not put my hand in the fire for this method but it may be worth a try - any other non-reboot ideas ?
bob2411 wrote:
for argument's sake you could try to write a program that will allocate and then deallocate every single bit of available memory once the service has been stopped. Then restart the service.
That's the "memory optimizer" X| snakeoil antipattern. All you accomplish is to flush all your system ram into the swapfile thus slowing all your applications down while the swap back in. You end up with 0 bytes more usable ram at the end.
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall
-
Yes, VM or hardware is the only way to solve a leak that even the OS can't reclaim upon process termination. Of cousre, it also means the OS has a bug, so I'd opt for a hardware solution, or at least a VM made by a different vendor. However.. why are you still using this product, anyway? If the product is really all that bad, and they are not planning to have a fix out for a year (don't forget, plans are always optimistic), aren't you staying with a product whose customer base is defecting? Is that really the horse you want to hitch your company's source code to? I've seen companies fold over such fiascos and wouldn't want to risk my company's source code to a company about to fold with such a serious flaw already in their software. Maybe that's just me though.
patbob
patbob wrote:
However.. why are you still using this product, anyway?
It is more complicated... the software is created on the company A. That company develops the repository system also. The company B makes great improvements/extensions to the software made in the company A (they are resellers/partners) => those extensions are great for me. The company A has developed the 3rd version of the software. The company B needs more time to port all their extensions to the software. This is why I'm stuck with that... Anyway the software that I'm using is amazing and it allows me to do exactly what I need in my business (www.tamelectromecanica.com[^]). There are only a few companies in the world that make this kind of software and I think that I'm with the best one, at least this is what I believe... Thank you for your feedback anyway.
-
Hello all, in our department we are using a software that works as a software repository (a kind of subversion) that is the only one that exists/works for the software that we are using. It seems that the service that runs on our server (the one that handles all the queries from our computers) leaks memory. Even if I stop the service it doesn't frees all the memory that it has occupied. I've tried to speak to the manufacturer of that software without result... My only guess is to set up a virtual machine in order to serve that service and make it to reset each day. Any other idea? this is like killing a fly using a thermonuclear bomb... :~ As always thank you in advance.
Joan Murt wrote:
Any other idea? this is like killing a fly using a thermonuclear bomb...
It's not a thermonuclear bomb, it's a honeypot, and as such is perfect for flies and other bugs.
-
Hello all, in our department we are using a software that works as a software repository (a kind of subversion) that is the only one that exists/works for the software that we are using. It seems that the service that runs on our server (the one that handles all the queries from our computers) leaks memory. Even if I stop the service it doesn't frees all the memory that it has occupied. I've tried to speak to the manufacturer of that software without result... My only guess is to set up a virtual machine in order to serve that service and make it to reset each day. Any other idea? this is like killing a fly using a thermonuclear bomb... :~ As always thank you in advance.
I vote the VM idea is the best. I wouldn't call it a significant issue, especially not equating it to a thermonuclear bomb. VM's are becoming so common that I think they'll eventually be considered "trivial". I run all sorts of things in VM's, server and workstation, and I love the technology. It's even to the point now that I won't run anything natively on a machine until I've first tested it in a virtual environment. Whether you have a dedicated, physical machine, or you're using a virtual one, you could setup a scheduled task of "shutdown -r" or what have you to make it restart at a convenient interval.
-
patbob wrote:
However.. why are you still using this product, anyway?
It is more complicated... the software is created on the company A. That company develops the repository system also. The company B makes great improvements/extensions to the software made in the company A (they are resellers/partners) => those extensions are great for me. The company A has developed the 3rd version of the software. The company B needs more time to port all their extensions to the software. This is why I'm stuck with that... Anyway the software that I'm using is amazing and it allows me to do exactly what I need in my business (www.tamelectromecanica.com[^]). There are only a few companies in the world that make this kind of software and I think that I'm with the best one, at least this is what I believe... Thank you for your feedback anyway.
-
Hello all, in our department we are using a software that works as a software repository (a kind of subversion) that is the only one that exists/works for the software that we are using. It seems that the service that runs on our server (the one that handles all the queries from our computers) leaks memory. Even if I stop the service it doesn't frees all the memory that it has occupied. I've tried to speak to the manufacturer of that software without result... My only guess is to set up a virtual machine in order to serve that service and make it to reset each day. Any other idea? this is like killing a fly using a thermonuclear bomb... :~ As always thank you in advance.
Joan Murt wrote:
It seems that the service that runs on our server (the one that handles all the queries from our computers) leaks memory. Even if I stop the service it doesn't frees all the memory that it has occupied.
Is it really possible? As i understand once the process dies. The memory is reclaimed by the OS!? Pardon me for the ignorance :) .. just enlightening myself :)
-
Joan Murt wrote:
It seems that the service that runs on our server (the one that handles all the queries from our computers) leaks memory. Even if I stop the service it doesn't frees all the memory that it has occupied.
Is it really possible? As i understand once the process dies. The memory is reclaimed by the OS!? Pardon me for the ignorance :) .. just enlightening myself :)
It should work that way... but for any reason it seems that not all the child processes die...
-
Thanks, makes sense now. When you find only one product that is a perfect solution for your needs, well.. sometimes you just have to put up with stuff :) Good luck with implementing the solution.
patbob
:sigh: Let's hope it will work for us... Thank you for your feedback.