mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
28.17k stars 2.89k forks source link

Memory leak starves playback #15099

Open nicolaberndt opened 3 hours ago

nicolaberndt commented 3 hours ago

mpv Information

mpv 0.35.1 Copyright © 2000-2023 mpv/MPlayer/mplayer2 projects
 built on UNKNOWN
FFmpeg library versions:
   libavutil       57.28.100
   libavcodec      59.37.100
   libavformat     59.27.100
   libswscale      6.7.100
   libavfilter     8.44.100
   libswresample   4.7.100
FFmpeg version: 5.1.6-0+deb12u1

Other Information

- Linux version: Debian 12.7
- Kernel Version: 6.1.0-26-amd64
- GPU Model: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106GL [Quadro P2000] [10de:1c30] (rev a1)
- Mesa/GPU Driver Version: OpenGL version string: 4.6.0 NVIDIA 560.35.03
- Window Manager and Version: Xfwm4
- Source mpv: Debian package
- Introduced in version: not exactly known, issue was not present in 0.32, is all I know

Reproduction Steps

When playing videos in a loop, mpv memory usage increases endlessly and ends up using all the avalable RAM until the machine ist starved and the OOM killer kicks in and kills mpv. This happens with and without hardware-decoding. We use gpu-next as vo,

I came across this when updating our playout machines from debian 11 (mpv 0.32) to debian 12 (0.35.1). Ally our machines simply froze after a few hours, then OOM kicked in and playback crashed.

Since we only play large videos on multi-head-outputs it might happen faster. The smallest video I have is around 3000x3000 pixels, so that is around the pixel-amount of a regular HDR video and it shows the same problem, even when played out on a single screen.

The time it takes to crash of course also depends on the amount of memory installed. With our setup it takes roughly 18 hours, so testing is slooow.

Expected Behavior

I expect mpv to endlessly play the file.

Actual Behavior

mpv eats up all the memory and crashes or is being killed by the OOM watdog.

Log File

If I run mpv with the given options for the logfile it will be overwhelmingly huge, so please let me know how I can come up with something usefull. Here is the logfile right after startup, if that helps. I can see RAM of mpv increase constantly though right from the start.

output.txt

Sample Files

No response

I carefully read all instruction and confirm that I did the following:

llyyr commented 3 hours ago

mpv 0.35.1 Copyright © 2000-2023 mpv/MPlayer/mplayer2 projects

We only provide support for the latest tagged release or newer. Update mpv and if the issue still exists open a new ticket.

nicolaberndt commented 3 hours ago

Since I am in a production environment (museum) I have to use a stable distribution in order to prevent such problems where possible.

So for me and perhaps many more users this is "the last stable version" that we actually can install.

How can one debug such issues? If I'd ask the debian maintainers I am sure they will tell me to go ask here.

Could anyone with "the latest tagged release or newer" quickly fire up a video in a loop and watch RAM-use for a while?

guidocella commented 3 hours ago

This is an Nvidia+OpenGL bug. I reported it 1 year ago on IRC and was suprised no one else was complaining about it. It is still present on a rolling release. You can avoid it by using --gpu-api=vulkan.

nicolaberndt commented 3 hours ago

Cool, many thx for the hint! Will try right away and report back.