mltframework / mltframework/shotcut

Pressing and holding Enter-key in playlist on a single mp4 test video seems to generate memory leak

Open
#673 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
15.2k
Forks
1.5k
Avg merge
11h 27m
Merged PRs (30d)
5

Description

I've tested holding the Enter key (for at least 30-60 seconds) on a single file in the playlist. It seems like its leaking some memory (RES is now on 3,1g). Maybe this can lead to problems when navigating the playlist during editing.

Shotcut-version : 18.11.18.02 (disabled GPU effects)
Fedora: 29

top -p $(pgrep shotcut)

`Threads:  33 total,   0 running,  33 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4,4 us,  1,9 sy,  0,0 ni, 91,9 id,  1,3 wa,  0,4 hi,  0,2 si,  0,0 st
GiB Mem :      5,7 total,      0,5 free,      4,2 used,      1,1 buff/cache
GiB Swap:      5,6 total,      2,7 free,      2,9 used.      0,6 avail Mem 

USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ P  PPID nTH   PID COMMAND                            
henning    5 -15 6565,7m   3,1g  43,5m S   0,8  53,6   0:06.52 2  5908  33 28652 SDLAudioP2                         
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   5:12.28 1  5908  33 28545 shotcut                            
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.00 3  5908  33 28546 shotcut                            
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:01.48 2  5908  33 28547 QXcbEventReader                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.00 0  5908  33 28552 gmain                              
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.00 0  5908  33 28554 gdbus                              
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.00 2  5908  33 28555 dconf worker                       
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.05 1  5908  33 28556 QDBusConnection                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.00 2  5908  33 28558 shotcut:disk$0                     
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.09 3  5908  33 28559 Qt bearer threa                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.04 3  5908  33 28560 Database                           
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.08 3  5908  33 28561 QQmlThread                         
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.00 3  5908  33 28562 shotcut                            
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.00 3  5908  33 28565 QNetworkAccessM                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:02.30 1  5908  33 28640 FrameRenderer                      
henning   39  19 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.00 0  5908  33 28641 PulseHotplug                       
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.89 0  5908  33 28642 shotcut                            
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   1:03.04 2  5908  33 28643 Mlt::RenderThre                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:10.64 2  5908  33 28644 Mlt::RenderThre                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:10.51 0  5908  33 28645 Mlt::RenderThre                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:10.84 1  5908  33 28646 Mlt::RenderThre                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:10.44 1  5908  33 28647 Mlt::RenderThre                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.22 0  5908  33 28654 shotcut                            
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.04 0  5908  33 25939 shotcut                            
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.06 2  5908  33 25940 shotcut                            
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.02 0  5908  33 25941 shotcut                            
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.02 0  5908  33 25942 shotcut                            
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.02 0  5908  33 25943 shotcut                            
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.04 2  5908  33 25944 Mlt::RenderThre                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.05 3  5908  33 25945 Mlt::RenderThre                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.04 3  5908  33 25946 Mlt::RenderThre                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.01 3  5908  33 25947 Mlt::RenderThre                    
henning   20   0 6565,7m   3,1g  43,5m S   0,0  53,6   0:00.02 3  5908  33 25948 Mlt::RenderThre     `

`
henning@satellite Shotcut]$ tail ~/.local/share/Meltytech/Shotcut/shotcut-log.txt 
[Debug  ] <MLT> [producer avformat-novalidate] "/home/henning/Nedlastinger/test.mp4" checking VFR: pkt.duration 512
[Debug  ] <MLT> [producer avformat-novalidate] "/home/henning/Nedlastinger/test.mp4" checking VFR: pkt.duration 512
[Debug  ] <MLT> [producer avformat-novalidate] "/home/henning/Nedlastinger/test.mp4" checking VFR: pkt.duration 512
[Debug  ] <MLT> [producer avformat-novalidate] "/home/henning/Nedlastinger/test.mp4" checking VFR: pkt.duration 512
[Debug  ] <MLT> [producer avformat-novalidate] "/home/henning/Nedlastinger/test.mp4" checking VFR: pkt.duration 512
[Debug  ] <MLT> [producer avformat-novalidate] "/home/henning/Nedlastinger/test.mp4" checking VFR: pkt.duration 512
[Debug  ] <MLT> [producer avformat-novalidate] "/home/henning/Nedlastinger/test.mp4" checking VFR: pkt.duration 512
[Debug  ] <MLT> [producer avformat-novalidate] "/home/henning/Nedlastinger/test.mp4" checking VFR: pkt.duration 512
[Debug  ] <MLT> [producer avformat-novalidate] "/home/henning/Nedlastinger/test.mp4" checking VFR: pkt.duration 512
[Debug  ] <MLT> [producer avformat-novalidate] "/home/henning/Nedlastinger/test.mp4" checking VFR: pkt.duration 512
`
[henning@satellite ~]$ lsof -p $(pgrep shotcut) | tail
shotcut 28545 henning  112r      REG              253,2   1471917 1967667 /home/henning/Nedlastinger/test.mp4
shotcut 28545 henning  113r      REG              253,2   1471917 1967667 /home/henning/Nedlastinger/test.mp4
shotcut 28545 henning  114r      REG              253,2   1471917 1967667 /home/henning/Nedlastinger/test.mp4
shotcut 28545 henning  115r      REG              253,2   1471917 1967667 /home/henning/Nedlastinger/test.mp4
shotcut 28545 henning  116r      REG              253,2   1471917 1967667 /home/henning/Nedlastinger/test.mp4
shotcut 28545 henning  117r      REG              253,2   1471917 1967667 /home/henning/Nedlastinger/test.mp4
shotcut 28545 henning  118r      REG              253,2   1471917 1967667 /home/henning/Nedlastinger/test.mp4
shotcut 28545 henning  119r      REG              253,2   1471917 1967667 /home/henning/Nedlastinger/test.mp4
shotcut 28545 henning  263r      REG              253,2   1471917 1967667 /home/henning/Nedlastinger/test.mp4
shotcut 28545 henning  264r      REG              253,2   1471917 1967667 /home/henning/Nedlastinger/test.mp4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue in Shotcut's playlist with a single MP4 while holding Enter, then monitor RES, open file descriptors, and shotcut-log.txt. The report points to repeated MLT avformat messages and many handles for the same file; done means identifying and stopping the accumulation so memory and handles remain stable.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.