Discussion:
[MPlayer-users] Doubts about memory leak in MPlayerX
Rarylson Freitas
2016-01-17 22:06:59 UTC
Permalink
Hi dears,

It first, I don't know if this mailing list is the correct place to
send this problem.

Anyway, I'm using the MPlayerX project (a GUI to mplayer) in a MacOSX.
I was using MPlayer X in Yosemite and so I've update my OS to El
Capitain. After this, MPlayerX stop working. I sent an email to
***@mplayerx.org, but I have no replies :(.

So I'm sending this email to this mailing list, and I would appreciate
any help to fix this problem.

The MPlayerX project itself uses a bundled version of mplayer. When
opening a movie, MplayerX launchs a mplayer instance with the video
output redirected to a MPlayerX buffer.

The GUI opens well, but when I click to open a movie (the problem
occurs with any movie), nothing happenings apparently.

If I check the `ps aux` output, I can see three process (MPlayerX plus
two mplayer processes) running:

rarybook:~ rarylson$ ps aux | grep -i mplayer | grep -v grep

rarylson 55387 72.7 18.0 4074644 1510196 ?? S 3:19PM 0:51.09
/Applications/MPlayerX.app/Contents/Resources/MPlayerX.mplayer.bundle/Contents/Resources/x86_64/mplayer
-demuxer lavf -msglevel all=-1:global=4:cplayer=4:identify=4
-msgcharset noconv -noconfig all -slave -noflip-hebrew -nodouble -dr
-cache 5000 -prefer-ipv4 -osdlevel 0 -sub-fuzziness 1 -ao coreaudio
-vo corevideo:shared_buffer:buffer_name=MPlayerX_7FC4A0D513C0 -slang
en,eng,ch,chs,cht,ja,jpn -subpos 100 -subfont-osd-scale 8.0
-subfont-text-scale 8.0 -subfont
/Applications/MPlayerX.app/Contents/Resources/wqy-microhei.ttc -subcp
UTF-8 -subfont-autoscale 1 -embeddedfonts -overlapsub -lavdopts
threads=4 -ass -ass-color FFFFFF00 -ass-font-scale 1.0
-ass-border-color 26 -ass-force-style
Default.BorderStyle=1,Default.MarginV=12,Default.Outline=2 -noautosub
-volume 100.0 -channels 2 -af scaletempo -vf pp=l5/hb:a/vb:a/dr:a
-nodispclog -font-fblist
/System/Library/Fonts/LucidaGrande.ttc,/Library/Fonts/Hiragino Sans GB
W3.otf,/Library/Fonts/Arial Unicode.ttf -vc ffh264vda,
/Users/rarylson/Movies/Youtube/Musics/Adele - Set Fire To The Rain
(Live at The Royal Albert Hall).mp4

rarylson 54651 0.0 2.4 3928176 200704 ?? S 2:42PM 0:15.74
/Applications/MPlayerX.app/Contents/MacOS/MPlayerX

rarylson 55388 0.0 0.1 2496196 5372 ?? S 3:19PM 0:00.03
/Applications/MPlayerX.app/Contents/Resources/MPlayerX.mplayer.bundle/Contents/Resources/x86_64/mplayer
-demuxer lavf -msglevel all=-1:global=4:cplayer=4:identify=4
-msgcharset noconv -noconfig all -slave -noflip-hebrew -nodouble -dr
-cache 5000 -prefer-ipv4 -osdlevel 0 -sub-fuzziness 1 -ao coreaudio
-vo corevideo:shared_buffer:buffer_name=MPlayerX_7FC4A0D513C0 -slang
en,eng,ch,chs,cht,ja,jpn -subpos 100 -subfont-osd-scale 8.0
-subfont-text-scale 8.0 -subfont
/Applications/MPlayerX.app/Contents/Resources/wqy-microhei.ttc -subcp
UTF-8 -subfont-autoscale 1 -embeddedfonts -overlapsub -lavdopts
threads=4 -ass -ass-color FFFFFF00 -ass-font-scale 1.0
-ass-border-color 26 -ass-force-style
Default.BorderStyle=1,Default.MarginV=12,Default.Outline=2 -noautosub
-volume 100.0 -channels 2 -af scaletempo -vf pp=l5/hb:a/vb:a/dr:a
-nodispclog -font-fblist
/System/Library/Fonts/LucidaGrande.ttc,/Library/Fonts/Hiragino Sans GB
W3.otf,/Library/Fonts/Arial Unicode.ttf -vc ffh264vda,
/Users/rarylson/Movies/Youtube/Musics/Adele - Set Fire To The Rain
(Live at The Royal Albert Hall).mp4

Looking the `mplayer` command line, everything apparently is ok.
However, the `mplayer` memory consumption starts to increase time
after time: from 1G to 2G, and so on. After some time, it consumes all
the system memory and the system crashes.

If I check the syscalls made by the mplayer binary, I see a lot of
lines like open("FONT_NAME"), mmap and munmap syscalls:

rarybook:~ rarylson$ sudo dtruss -p 55388

SYSCALL(args) = return
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
getppid(0x1E, 0x7FFF5FBFE388, 0x0) = 55831 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
getppid(0x1E, 0x7FFF5FBFE388, 0x0) = 55831 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
getppid(0x1E, 0x7FFF5FBFE388, 0x0) = 55831 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
getppid(0x1E, 0x7FFF5FBFE388, 0x0) = 55831 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0
sigaction(0x1E, 0x7FFF5FBFE388, 0x0) = 0 0

rarybook:~ rarylson$ sudo dtruss -p 55387
SYSCALL(args) = return munmap(0x3D2F5000, 0x438702C) = 0 0
open("/System/Library/Fonts/PingFang.ttc\0", 0x0, 0x0) = 8 0
fcntl(0x8, 0x2, 0x1) = 0 0
fstat64(0x8, 0x7FFF5FBFDCE0, 0x1) = 0 0
mmap(0x0, 0x438702C, 0x1, 0x2, 0x8, 0x0) = 0x3D2F5000 0
close(0x8) = 0 0
sigprocmask(0x1, 0x0, 0x7FFF5FBFD9A0) = 0x0 0
sigaltstack(0x0, 0x7FFF5FBFD990, 0x7FFF5FBFD9A0) = 0 0
sigprocmask(0x1, 0x0, 0x7FFF5FBFD9A0) = 0x0 0
sigaltstack(0x0, 0x7FFF5FBFD990, 0x7FFF5FBFD9A0) = 0 0
munmap(0x3D2F5000, 0x438702C) = 0 0
open("/System/Library/Fonts/PingFang.ttc\0", 0x0, 0x0) = 8 0
fcntl(0x8, 0x2, 0x1) = 0 0 fstat64(0x8, 0x7FFF5FBFDCE0, 0x1) = 0 0
mmap(0x0, 0x438702C, 0x1, 0x2, 0x8, 0x0) = 0x3D2F5000 0
close(0x8) = 0 0 sigprocmask(0x1, 0x0, 0x7FFF5FBFD9A0) = 0x0 0
sigaltstack(0x0, 0x7FFF5FBFD990, 0x7FFF5FBFD9A0) = 0 0
sigprocmask(0x1, 0x0, 0x7FFF5FBFD9A0) = 0x0 0
sigaltstack(0x0, 0x7FFF5FBFD990, 0x7FFF5FBFD9A0) = 0 0
munmap(0x3D2F5000, 0x438702C) = 0 0
open("/System/Library/Fonts/PingFang.ttc\0", 0x0, 0x0) = 8 0
fcntl(0x8, 0x2, 0x1) = 0 0
fstat64(0x8, 0x7FFF5FBFDCE0, 0x1) = 0 0
mmap(0x0, 0x438702C, 0x1, 0x2, 0x8, 0x0) = 0x3D2F5000 0
close(0x8) = 0 0
sigprocmask(0x1, 0x0, 0x7FFF5FBFD9A0) = 0x0 0
sigaltstack(0x0, 0x7FFF5FBFD990, 0x7FFF5FBFD9A0) = 0 0
sigprocmask(0x1, 0x0, 0x7FFF5FBFD9A0) = 0x0 0
sigaltstack(0x0, 0x7FFF5FBFD990, 0x7FFF5FBFD9A0) = 0 0
__disable_threadsignal(0x1, 0x0, 0x0) = 0 0
__disable_threadsignal(0x1, 0x0, 0x0) = 0 0
munmap(0x3D2F5000, 0x438702C) = 0 0
open("/System/Library/Fonts/PingFang.ttc\0", 0x0, 0x0) = 8 0
fcntl(0x8, 0x2, 0x1) = 0 0
fstat64(0x8, 0x7FFF5FBFDCE0, 0x1) = 0 0
mmap(0x0, 0x438702C, 0x1, 0x2, 0x8, 0x0) = 0x3D2F5000 0
close(0x8) = 0 0
sigprocmask(0x1, 0x0, 0x7FFF5FBFD9A0) = 0x0 0
sigaltstack(0x0, 0x7FFF5FBFD990, 0x7FFF5FBFD9A0) = 0 0
sigprocmask(0x1, 0x0, 0x7FFF5FBFD9A0) = 0x0 0
sigaltstack(0x0, 0x7FFF5FBFD990, 0x7FFF5FBFD9A0) = 0 0
munmap(0x3D2F5000, 0x438702C) = 0 0
open("/System/Library/Fonts/PingFang.ttc\0", 0x0, 0x0) = 8 0
fcntl(0x8, 0x2, 0x1) = 0 0
fstat64(0x8, 0x7FFF5FBFDCE0, 0x1) = 0 0
mmap(0x0, 0x438702C, 0x1, 0x2, 0x8, 0x0) = 0x3D2F5000 0
close(0x8) = 0 0
sigprocmask(0x1, 0x0, 0x7FFF5FBFD9A0) = 0x0 0
sigaltstack(0x0, 0x7FFF5FBFD990, 0x7FFF5FBFD9A0) = 0 0
sigprocmask(0x1, 0x0, 0x7FFF5FBFD9A0) = 0x0 0
sigaltstack(0x0, 0x7FFF5FBFD990, 0x7FFF5FBFD9A0) = 0 0

Even after a few minutes, syscalls like "open("/System/Library/Fonts/*
" calls are still being made.

The question is: How can I debug better whats is going on? Whats is
going on? How can I fix this? It's a mplayer problem? Or a MPlayerX
problem?

--
Rarylson Freitas
Carl Eugen Hoyos
2016-01-17 22:11:33 UTC
Permalink
Post by Rarylson Freitas
How can I debug better whats is going on?
Please call current MPlayer svn head and provide the
command line that allows to reproduce the issue
together with the complete, uncut console output
here on the mailing list.

Note that ps cannot show memory leaks (valgrind can)
but MPlayer should not quickly consume all the
system memory.

Carl Eugen

Loading...