Is SSDR v2.1.33 for Windows releasing memory correctly?

  • 2
  • Problem
  • Updated 11 months ago
  • Acknowledged
  • (Edited)
I have noticed when starting SSDR from cold, the associated memory usage is approximately 230MB. If that instance is disconnected by another user on the LAN, the usage drops slightly as would be expected. However, when reconnecting the on the first computer again, the memory usage slowly increases from the previous level and eventually settles to a around 30M more than a freshly started instance of SSDR. Each subsequent cycle of disconnect/reconnect 'ratchets' the memory usage up by this rough figure of 30M. Clearly, if this goes on unchecked there will eventually be a memory resource problem.

I see this behaviour on three machines; one Win 7-64 bit,4G. One Win 10-64bit,16G and one Win 7-32 bit, 2G. It doesn't seem to be machine specific. The only way to get SSDR to release the (hogged?) memory is to close it and reconnect to the radio from cold.

Has this been noticed already? Could it be a bug? If this is by design, what is the purpose of retaining an ever increasing amount of memory?

Many thanks. Paul
Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
  • curious

Posted 11 months ago

  • 2
Photo of Wayne

Wayne

  • 614 Posts
  • 86 Reply Likes
Im sure its caused by Microsoft Visual Studio nothing flex has any control over.
(Edited)
Photo of Varistor

Varistor

  • 334 Posts
  • 74 Reply Likes
You are sure or speculating? VS has a very mature compiler that is used for Microsoft’s own products. What is described is a classic developer caused poor memory/garbage management.
Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
Thank's for the suggestion Wayne. I have no experience of Visual Studio so I wouldn't know if it could be the cause. However, I do know that currently no other software on any of my systems exhibit this behaviour. Perhaps someone at Flex will be able to comment further?
Photo of bahillen

bahillen

  • 109 Posts
  • 41 Reply Likes
This behavior is a classic memory leak in my opinion. I would expect it is in the FRS software. Could be in a 3 rd part app as the probably are not tested as much as FRS. I would recommend submitting a ticket to help desk.

73 Bill
W9JJB
Photo of Martin Ewing AA6E

Martin Ewing AA6E

  • 303 Posts
  • 66 Reply Likes
The acid test is to run this on a machine with limited RAM and see whether SSDR can actually croak Windows or make it thrash.  Maybe SSDR/WIndows is just caching something in hopes of future reuse, but it smells like a memory leak.  Good catch.
Photo of Varistor

Varistor

  • 334 Posts
  • 74 Reply Likes
This is not a guessing game. There are plenty of profiling tools, including in VS, that would identity potential problems and the code associated with it.
Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
Thanks for the replies folks. FWIW, my gut feeling is also that it is symptomatic of a memory leak which hopefully some re-coding by Flex could cure. For all we know, this could be the root cause of other reported but un-diagnosed problems.

I'm not so bothered that I wish to spend more of my time with further analysis. Nor do I think it warrants a help-desk ticket as the symptoms are clear and unlikely to be due to operator error. 
It would be simple for anyone to replicate this - hopefully someone at Flex will take a look.

Cheers.
Photo of Jim  KJ7S

Jim KJ7S

  • 165 Posts
  • 25 Reply Likes
If you have decided that Flex is the root of a problem, then definately open a help ticket to get the Flex crew to take a look at it and if they can replicate your situation, they will fix it. Bantering it about without doing that, and still blaming them is not quite the responsible approach.
Photo of Martin Ewing AA6E

Martin Ewing AA6E

  • 303 Posts
  • 66 Reply Likes
Yes, it's not clear that the developers & maintainers spend a lot of time reading these posts.  Actually, I hope they don't!  Tim or some other authority figure will promote a problem to a help desk ticket at times, but it seems more efficient for the end user to do it.
Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
We obviously have differing views of what a help desk is for. I am not blaming anyone - I'm not in a position to do so. All I hope to do is alert someone (anyone) at Flex to what could be a problem which they may, after proper analysis, be able to rectify. No blame, just trying to be helpful! 73
(Edited)
Photo of Tim - W4TME

Tim - W4TME, Customer Experience Manager

  • 9153 Posts
  • 3503 Reply Likes
It is not a memory leak.  When resources are allocated for objects in the managed ,Net environment, when they are destroyed, the memory allocated for those objects on the heap are not immediately released.  The reason for this is that the object may be needed again and there is a performance penalty if you have to reallocate the objects into the managed virtual memory.  As a matter of fact, we can't really force the allocated memory to become deallocated (work with physical memory).There is a fairly complex process of destroying objects and releasing the memory allocated to them called Garbage Collection (https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals).

Real memory leaks are one of the fundamental behaviors we check for when alpha testing new code.
Photo of Robbie - KI4TTZ

Robbie - KI4TTZ

  • 484 Posts
  • 78 Reply Likes
I guess you could force the garbage cleanup at connect/disconnect time...i've had to force cleanup via collect() before in some complex powershell scripts since it's basically built on top of .net.

https://msdn.microsoft.com/en-us/library/xe0c2357(v=vs.110).aspx
Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
Thanks for the insight Tim. Sounds like the garbage collector would cover it when the level of retained memory reaches a certain point. My shack computer runs 24/7. I will periodically check the resources allocated to SSDR as I continue to alternate the radio connection between the shack and other clients. It will be interesting to see at what point the garbage man comes round. 73, Paul.
Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
Footnote: I thought I would see if I could get the garbage collector to clean up. Current SSDR memory usage is as shown in the attached image - it looks like it has not done so. If this is expected behaviour then I am surprised at the level of resource required by SSDR.

Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
Footnote to the footnote: Well it seems the garbage man is on strike. SSDR memory usage finally reached the point where it crashed. Despite your reassurances Tim, it seems this could be a problem after all. Please see attached image for the error details:

Photo of Tim - W4TME

Tim - W4TME, Customer Experience Manager

  • 9153 Posts
  • 3503 Reply Likes
I need to know in great detail the exact steps taken to reproduce this so we can try and reproduce the issue in the lab.  If we can't reproduce it, then it will not be an issue we will look into.  Please open a HelpDesk support ticket to send us the procedure and if the ticket is not assigned to me, have the tech support engineer who did pick up the ticket to assign it to me.
Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
As per my original post; simply connect to a radio on computer A, run for say 5 mins, open SSDR on computer B. When prompted, disconnect radio from computer A and run SSDR from computer B for say 5 mins again. Repeat this cycle, watch the memory usage ratchet up to the point where the error occurs.

At no point shut down SSDR on either computer as this does release the memory.

On each computer; Two panadaptors, each with 1 slice open. DAXIQ being streamed from computer B.

It took 3 hrs to reach the point of failure, during that time I repeated the above cycle around 50 times.

If this information is not sufficient please let me know how to open a help desk ticket although I am not looking to spend much more time on this as I believe I cannot add anything more.
Photo of Tim - W4TME

Tim - W4TME, Customer Experience Manager

  • 9153 Posts
  • 3503 Reply Likes
I am glad I did not miss this since it was not provided in a HelpDesk ticket.  Thanks for the info.
Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
My pleasure Tim. Although, since we were already engaged here in dialogue regarding these symptoms, I fail to see how a help desk ticket could have helped further. Regardless, I am pleased that an underlying issue with SSDR is now likely to be dealt with. 73, Paul
Photo of Tim - W4TME

Tim - W4TME, Customer Experience Manager

  • 9153 Posts
  • 3503 Reply Likes
Because the Community is not our official support vehicle and I might have missed your update in the hundreds of post that can be generated.  It was a reasonable request.  Luckily, it was not missed, but with an HD ticket, there is no way it can be missed.
Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
Thank's Tim, my misunderstanding;

The welcome note at the foot of the community home page says..."If you have questions to ask or feedback to give, you've come to the right place...."

Hence my post here, which I see simply as "feedback".

Section 3 of the community user guidelines goes on to say "....If you need urgent help from our superstar support agents, you can open a HelpDesk support ticket..."

I didn't need help with anything (urgent or otherwise) regarding the symptoms I was reporting. Indeed quite the reverse. A help desk ticket therefore did not (and still does not by your own definition) seem appropriate.

Having now located the help desk request page, I can say that I would still have posted here by preference. Apart from having to enter all of the information again, and provide personal information, a help desk ticket would not have elicited responses from other users. Something which in this case helped lend credibility to my report. Notably that at least one other user was easily able to reproduce the symptoms. Without that (thank's Rick), rather than being "missed", my report had been officially dismissed.

I respectfully suggest that if Flex does actually want feedback, then please don't make it an uphill struggle. IMHO, either the purpose of the community and/or help desk need to be re-defined. Or perhaps provide a more streamlined channel into the helpdesk entitled "urgent feedback" or something similar.

Over & out, Paul
(Edited)
Photo of Rick Hadley - W0FG

Rick Hadley - W0FG

  • 588 Posts
  • 128 Reply Likes
I can confirm that behavior, though I didn't run it long enough to make it crash.  On both computers, the committed memory went from about 250k to over 1M in about an hour, switching back and forth every few minutes.
Photo of Paul

Paul

  • 523 Posts
  • 157 Reply Likes
Many thanks Rick. I was 99% convinced it wasn't finger trouble this end but it's good to have it confirmed. 73, Paul
Photo of Tim - W4TME

Tim - W4TME, Customer Experience Manager

  • 9153 Posts
  • 3503 Reply Likes
Official Response
 This behavior has been entered as issue #6245 for further investigation.  Thanks for the reports.

This conversation is no longer open for comments or replies.