AnsweredAssumed Answered

iMX6 GStreamer Memory Leak

Question asked by grim on Sep 22, 2015
Latest reply on Oct 28, 2015 by grim

I've been trying to track down a memory leak in our system.

We have an iMX6 solo (512MB of RAM) that's intended to play video clips when the system is in "Idle" mode (not being used by a customer). We're currently playing a small video in a loop (.mov, less than 1MB in size, plays for less than 10 seconds) after a period of time when there is no touchscreen activity detected.

We're currently using Qt 5.5 (Enterprise) for our user interface as well as handling multimedia.

 

We noticed that if we let our video loop continuously for extended periods of time (> 24 hours) that, eventually, our system will crash because the 'OOM' kicks in and reports that there is not enough system memory.... it kills our application.

 

I decided to start a thread in our system that goes out (about once every 5 seconds) and captures all the information stored in '/proc/meminfo'. I could see that the memory was slowly leaking away over time. I could also see that "Commited_AS" continued to grow over time.

 

After combing through the community, I found several helpful suggestions but nothing that eliminates this memory leak.

 

One thing I have implemented in our system, as recommended within the community, is a thread that runs in the background that writes a "3" to '/proc/sys/vm/drop_caches'. This really only helped to prolong the inevitable. The system memory still appears to leak away but at a much lower rate.

 

I imported my log file, graphed the free memory and captured it to share. Around the '33526' mark in this graph, the 'OOM' kicked in and killed our application. I thought this seemed strange until I saw how high 'Commited_AS' had climbed.

Qt_55_Small_Movie_memfree.jpg

Qt_55_Small_Movie_committed_as.jpg

Can anybody offer any advice on what I can change in the system to eliminate this memory leak error?

Any advice would be greatly appreciated.

Outcomes