Bug 28363 - vlc crashes when opening a mkv file when the video codec is AV1
Summary: vlc crashes when opening a mkv file when the video codec is AV1
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 8
Hardware: x86_64 Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact:
URL:
Whiteboard: MGA8-64-OK
Keywords: IN_ERRATA8, advisory, validated_update
Depends on:
Blocks:
 
Reported: 2021-02-15 23:14 CET by Philippe Didier
Modified: 2021-03-03 09:58 CET (History)
6 users (show)

See Also:
Source RPM: vlc-3.0.12.1-2.mga8.src.rpm vlc-3.0.12.1-2.mga8.tainted.src.rpm
CVE:
Status comment:


Attachments
patch to allow dav1d in VLC (1.52 KB, patch)
2021-02-22 14:19 CET, Philippe Didier
Details | Diff

Description Philippe Didier 2021-02-15 23:14:43 CET
That sounds like a bug already reported for Mageia 7 with vlc 3.0.8 but magically resolved when vlc was updated to 3.0.10

https://bugs.mageia.org/show_bug.cgi?id=24470

Now  with Vlc 3.0.12.1 tainted with all its plugins

nVidia GeForce GT 1030
proprietary driver

Vlc can read quite everything except some mkv files ... but curiously can read the  mkv file that Shlomi proposed to test in the previous bug

this happens with some files whose the video codec is VP9 : Google/On2's VP9 Video (VP90)

NB mpv can read them fluently
Mplayer doesn't crash but displays nothing

If needed I can upload to some place one of the problematic file (12.4 Mo)
Comment 1 Philippe Didier 2021-02-15 23:28:45 CET
PS

launching mpv from a console I get this :
 (+) Video --vid=1 (*) (av1 640x360 25.000fps)
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
and it displays the mkv correctly

Launching VLC from a console I get this 

uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu
Erreur de segmentation (core dumped)
and VLC instantly crashes
Comment 2 Philippe Didier 2021-02-15 23:31:04 CET
Launching VLC from a console as cvlc
I get this
VLC media player 3.0.12.1 Vetinari (revision 3.0.12.1-0-8e19ecd05497)
[000000000051ac60] dummy interface: using the dummy interface module...
Erreur de segmentation (core dumped)
Comment 3 Lewis Smith 2021-02-16 11:59:32 CET
Thanks for the report.
Do you know whether this has long been the case? I ask because VLC has recently been updated from vlc-3.0.12.1-1 to the vlc-3.0.12.1-2 you cite - in response to bug 27377.
> If needed I can upload to some place one of the problematic file (12.4 Mo)
Please do. I happen to still have the -1, so could see whether the problem existed before this recent update.

CC: (none) => lewyssmith

Morgan Leijström 2021-02-16 14:17:40 CET

CC: (none) => fri

Comment 4 Philippe Didier 2021-02-16 17:54:27 CET
Hi Lewis
Here's the link to download one file problematic for VLC but that mpv can read

it's a mkv file video codec : av1  = VP9 : Google/On2's VP9 Video (VP90)

http://dl.free.fr/fbsv6Dydu

NB some other mkv files with the same video codec induce the VLC crash (segfault)
but are read by mpv

NB webm files with the same video codec are fluently read by VLC... even the ones that caused problem in https://bugs.mageia.org/show_bug.cgi?id=24470 !
Comment 5 Philippe Didier 2021-02-16 17:57:04 CET
PS
I can read these problematic mkv files with Mageia 7 fully updated !
Comment 6 Lewis Smith 2021-02-16 20:37:06 CET
Thanks for the sample video. J'allais proposer via Free !
And the note about it working with Mageia 7.
---
Mageia 8/Cauldron, LXDE, not quite up-to date because vlc is now at -2.
 vlc-3.0.12.1-1.mga8.tainted
The video played with xplayer, parole, Gnome videos, xine.
And crashed with VLC:

$ LANG=C vlc Nightwish.mkv
VLC media player 3.0.12.1 Vetinari (revision 3.0.12.1-0-8e19ecd05497)
[0000000002116460] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
(vlc:3251): Gtk-WARNING **: 20:26:34.672: Theme parsing error: gtk.css:2:33: Failed to import: Error opening file /home/lewis/.config/gtk-3.0/window_decorations.css: No such file or directory
[00000000021e72c0] qt interface error: Unable to load extensions module
Segmentation fault (core dumped)

VLC has no one maintainer, so assigning this globally.

CC: lewyssmith => (none)
Source RPM: vlc-3.0.12.1-2 (tainted) => vlc-3.0.12.1-2 (tainted),
Assignee: bugsquad => pkg-bugs

Comment 7 Philippe Didier 2021-02-20 13:42:41 CET
Something to add
and perhaps an explanation

Smplayer can easily display the problematic file... and allows to get informations about the codec used to read audio and video
and you know what ?
the video codec is :
Libdav1d-(av1) dav1d AV1 decoder by VideoLAN

the libdav1d5 and the libdav1d5-devel (lib64dav1d5 lib64dav1d5-devel) are present in the repo,
but the option "with davd1" seems not to have been used to compile  VLC or mplayer: it's not a Buildrequire 


Mpv uses ffmpeg codecs (it has ffmpeg-devel as Buildrequire : not libdavd1) ... and can read the problematic file, (same for Winff)
ffmpeg has a strict Buildrequire for libdavd1


So this seems to be a missing Buildrequire and a missing compile option for mplayer and VLC... (for them it's an option)
Comment 8 Philippe Didier 2021-02-20 13:48:36 CET
PS
I have some knowledge about simple rpms building and about spec files
But
I'm not yet able to try to compile those huge programs on my computer 

and even less able to commit or propose anything on the BuildSystem...
Comment 9 Philippe Didier 2021-02-20 14:01:35 CET
sorry for the typo
instead  libdav1d, I sometimes wrote libdavd1 !!!
Comment 10 Aurelien Oudelet 2021-02-20 14:15:25 CET
Hi, thanks for reporting this.

I reproduce well.

systemd[2255]: Started Lecteur multimédia VLC - Lecteur multimédia.
févr. 20 14:05:32 mageia.local kernel: vlc[12100]: segfault at 9 ip 00007ff49f31240f sp 00007ff4b8906b30 error 6 in libaom.so.2.0.0[7ff49f148000+39e000]
févr. 20 14:05:32 mageia.local kernel: Code: d5 77 16 eb 19 66 0f 1f 44 00 00 48 83 c2 01 48 89 54 24 28 48 39 d5 74 05 80 3a 00 74 ed 48 8b 4c 24 10 49 8b b5 80 bd 00 00 <c7> 41 08 ff ff ff ff 31 c9 eb 10 66 0f 1f 44 00 00 48 83 c1 01 48

More useful trace:
Thread 22 "vlc" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffb4574640 (LWP 13224)]
0x00007fffa595e40f in decoder_decode () from /lib64/libaom.so.2

libaom.so comes from this SRPM: aom-2.0.1-3.mga8.src.rpm

As there is no maintainer for this package I added the committers in CC.

(Please set the status to 'assigned' if you are working on it)

CC: (none) => mageia, nicolas.salguero, ouaurelien

Comment 11 Morgan Leijström 2021-02-20 15:33:03 CET
For errata?
Comment 12 Aurelien Oudelet 2021-02-20 15:34:49 CET
(In reply to Morgan Leijström from comment #11)
> For errata?

Since there is not fix at this time, I say Yes. Go for an Errata entry.
Comment 13 Morgan Leijström 2021-02-20 15:38:11 CET
https://wiki.mageia.org/en/Mageia_8_Errata#Video

Keywords: (none) => IN_ERRATA8

Comment 14 Philippe Didier 2021-02-20 18:07:56 CET
Hi Aurélien

The problem seems to come from libaom : in Mageia, VLC uses it to read AV1 videos...

because aom is an option and a BuildRequire in VLC spec file for Mageia

Perhaps it needs to be replaced by libdav1d5
Comment 15 Philippe Didier 2021-02-20 18:09:45 CET
Unless both of them are compatible... in this case libdav1d has just to be added
Philippe Didier 2021-02-20 18:14:25 CET

Summary: vlc crashes when opening a mkv file when the video codec is VP9 : Google/On2's VP9 Video (VP90) => vlc crashes when opening a mkv file when the video codec is AV1

Comment 16 Morgan Leijström 2021-02-20 18:17:32 CET
Updated Errata

Summary: vlc crashes when opening a mkv file when the video codec is AV1 => VLC crashes when opening a MKV file when the video codec is AV1

Comment 17 Philippe Didier 2021-02-20 18:19:45 CET
Hi Morgan

Sorry for being late to modify the title of the bug

then needs to be corrected in the Errata :
  vlc crashes when opening a mkv file when the video codec is AV1
instead of :
vlc crashes when opening a mkv file when the video codec is VP9 : Google/On2's VP9 Video (VP90)

Summary: VLC crashes when opening a MKV file when the video codec is AV1 => vlc crashes when opening a mkv file when the video codec is AV1

Comment 18 Philippe Didier 2021-02-20 18:20:50 CET
Hi Morgan
sorry for the Aircrash
Comment 19 Morgan Leijström 2021-02-20 18:31:39 CET
No problem
Dont hesitate to post such reminders, i may miss such things :)
Comment 20 Philippe Didier 2021-02-22 14:19:18 CET
Created attachment 12363 [details]
patch to allow dav1d in VLC

I found a solution
Now VLC can read the problematic file
:)

You only have to enable dav1d
and add it in Buildrequires
Comment 21 Philippe Didier 2021-02-22 14:21:54 CET
It can be proposed in updates for Mageia8
And then the bug may be closed as resolved 
and in the Errata you may propose to update
Comment 22 Nicolas Lécureuil 2021-02-22 14:38:29 CET
we will push this as an update but please do not close it.

I will be closed by our robot when the new rpm will be released
Comment 23 Philippe Didier 2021-02-22 15:04:45 CET
Ok 
I know that's not to me to close the bug

and even more : I think that a skilled packager must verify and adapt the diff I proposed
And tests the build
and proposes it to QA

(I only built it on my computer and tested it on a 64 bit system)

Nevertheless it seems to be simple to modify the spec file
Comment 24 Morgan Leijström 2021-02-22 15:16:17 CET
When fix is verified in this bug, I will write in Errata for final, that this issue will be fixed by updating.
Comment 25 Philippe Didier 2021-02-26 12:36:36 CET
Hi
I changed the version from Cauldron to Mageia8 so that we don't forget to propose the solution as an update for Mageia 8...

Version: Cauldron => 8

Comment 26 Philippe Didier 2021-02-26 12:42:32 CET
NB the diff can't be used as it is,
 because the rel has been modified in cauldron (it's now 3.0.12.1-3)
so define rel should be 4 in the diff...
Comment 27 David GEIGER 2021-02-26 14:08:59 CET
Done for Cauldron and also for mga8 in Core/Updates_testing and Tainted/Updates_testing repo!

CC: (none) => geiger.david68210

Comment 28 Philippe Didier 2021-02-26 14:28:26 CET
Thanks David
I will test it from update-testing repo
(I've to uninstall my own packages first)

If it works it will be needed to modify the errata
Comment 29 Morgan Leijström 2021-02-26 14:31:01 CET
yes per comment 24
Comment 30 Aurelien Oudelet 2021-02-26 14:34:22 CET
(In reply to Philippe Didier from comment #28)
> Thanks David
> I will test it from update-testing repo
> (I've to uninstall my own packages first)
> 
> If it works it will be needed to modify the errata

No, if this works, we assign this to QA Team , which will test this and and advisory must be published. Then, Errata will be updated too that an update has been made available, we must leave the errata written and that a BR is already done in order to prevent further duplicate reports.
Comment 31 Morgan Leijström 2021-02-26 14:46:29 CET
Well talking at the detailed level, dont also forget we have to move it from testing to updates... ;)

And there are both core and tainted packages to handle.
Comment 32 Aurelien Oudelet 2021-02-26 16:02:21 CET
(In reply to David GEIGER from comment #27)
> Done for Cauldron and also for mga8 in Core/Updates_testing and
> Tainted/Updates_testing repo!

Advisory:
========================

Updated vlc packages fix segfault on AV1 encoded files

vlc version 3.0.12.1-2 in Mageia 8 has a missing dependency
on AV1 codec. The updated packages provide a fix on this issue.

References:
https://bugs.mageia.org/show_bug.cgi?id=28363
========================

Updated packages in core/updates_testing:
========================
lib(64)vlc-devel-3.0.12.1-2.1.mga8
lib(64)vlc5-3.0.12.1-2.1.mga8
lib(64)vlccore9-3.0.12.1-2.1.mga8
svlc-3.0.12.1-2.1.mga8
vlc-3.0.12.1-2.1.mga8
vlc-plugin-aa-3.0.12.1-2.1.mga8
vlc-plugin-chromaprint-3.0.12.1-2.1.mga8
vlc-plugin-common-3.0.12.1-2.1.mga8
vlc-plugin-dv-3.0.12.1-2.1.mga8
vlc-plugin-flac-3.0.12.1-2.1.mga8
vlc-plugin-fluidsynth-3.0.12.1-2.1.mga8
vlc-plugin-gme-3.0.12.1-2.1.mga8
vlc-plugin-gnutls-3.0.12.1-2.1.mga8
vlc-plugin-jack-3.0.12.1-2.1.mga8
vlc-plugin-kate-3.0.12.1-2.1.mga8
vlc-plugin-libass-3.0.12.1-2.1.mga8
vlc-plugin-libnotify-3.0.12.1-2.1.mga8
vlc-plugin-lirc-3.0.12.1-2.1.mga8
vlc-plugin-lua-3.0.12.1-2.1.mga8
vlc-plugin-mod-3.0.12.1-2.1.mga8
vlc-plugin-mpc-3.0.12.1-2.1.mga8
vlc-plugin-ncurses-3.0.12.1-2.1.mga8
vlc-plugin-opengl-3.0.12.1-2.1.mga8
vlc-plugin-projectm-3.0.12.1-2.1.mga8
vlc-plugin-pulse-3.0.12.1-2.1.mga8
vlc-plugin-rist-3.0.12.1-2.1.mga8
vlc-plugin-samba-3.0.12.1-2.1.mga8
vlc-plugin-schroedinger-3.0.12.1-2.1.mga8
vlc-plugin-sdl-3.0.12.1-2.1.mga8
vlc-plugin-shout-3.0.12.1-2.1.mga8
vlc-plugin-sid-3.0.12.1-2.1.mga8
vlc-plugin-sndio-3.0.12.1-2.1.mga8
vlc-plugin-speex-3.0.12.1-2.1.mga8
vlc-plugin-theora-3.0.12.1-2.1.mga8
vlc-plugin-twolame-3.0.12.1-2.1.mga8
vlc-plugin-upnp-3.0.12.1-2.1.mga8
vlc-plugin-vdpau-3.0.12.1-2.1.mga8
vlc-plugin-zvbi-3.0.12.1-2.1.mga8


Updated packages in tainted/updates_testing:
========================
lib(64)vlc-devel-3.0.12.1-2.1.mga8.tainted
lib(64)vlc5-3.0.12.1-2.1.mga8.tainted
lib(64)vlccore9-3.0.12.1-2.1.mga8.tainted
svlc-3.0.12.1-2.1.mga8.tainted
vlc-3.0.12.1-2.1.mga8.tainted
vlc-plugin-aa-3.0.12.1-2.1.mga8.tainted
vlc-plugin-chromaprint-3.0.12.1-2.1.mga8.tainted
vlc-plugin-common-3.0.12.1-2.1.mga8.tainted
vlc-plugin-dv-3.0.12.1-2.1.mga8.tainted
vlc-plugin-fdkaac-3.0.12.1-2.1.mga8.tainted
vlc-plugin-flac-3.0.12.1-2.1.mga8.tainted
vlc-plugin-fluidsynth-3.0.12.1-2.1.mga8.tainted
vlc-plugin-gme-3.0.12.1-2.1.mga8.tainted
vlc-plugin-gnutls-3.0.12.1-2.1.mga8.tainted
vlc-plugin-jack-3.0.12.1-2.1.mga8.tainted
vlc-plugin-kate-3.0.12.1-2.1.mga8.tainted
vlc-plugin-libass-3.0.12.1-2.1.mga8.tainted
vlc-plugin-libnotify-3.0.12.1-2.1.mga8.tainted
vlc-plugin-lirc-3.0.12.1-2.1.mga8.tainted
vlc-plugin-lua-3.0.12.1-2.1.mga8.tainted
vlc-plugin-mod-3.0.12.1-2.1.mga8.tainted
vlc-plugin-mpc-3.0.12.1-2.1.mga8.tainted
vlc-plugin-ncurses-3.0.12.1-2.1.mga8.tainted
vlc-plugin-opengl-3.0.12.1-2.1.mga8.tainted
vlc-plugin-projectm-3.0.12.1-2.1.mga8.tainted
vlc-plugin-pulse-3.0.12.1-2.1.mga8.tainted
vlc-plugin-rist-3.0.12.1-2.1.mga8.tainted
vlc-plugin-samba-3.0.12.1-2.1.mga8.tainted
vlc-plugin-schroedinger-3.0.12.1-2.1.mga8.tainted
vlc-plugin-sdl-3.0.12.1-2.1.mga8.tainted
vlc-plugin-shout-3.0.12.1-2.1.mga8.tainted
vlc-plugin-sid-3.0.12.1-2.1.mga8.tainted
vlc-plugin-sndio-3.0.12.1-2.1.mga8.tainted
vlc-plugin-speex-3.0.12.1-2.1.mga8.tainted
vlc-plugin-theora-3.0.12.1-2.1.mga8.tainted
vlc-plugin-twolame-3.0.12.1-2.1.mga8.tainted
vlc-plugin-upnp-3.0.12.1-2.1.mga8.tainted
vlc-plugin-vdpau-3.0.12.1-2.1.mga8.tainted
vlc-plugin-zvbi-3.0.12.1-2.1.mga8.tainted

from SRPMS:
vlc-3.0.12.1-2.1.mga8.src.rpm
vlc-3.0.12.1-2.1.mga8.tainted.src.rpm
Comment 33 Aurelien Oudelet 2021-02-26 16:42:07 CET
MGA8 x86_64, Plasma 5.20.4

I reproduced the segfault with vlc-3.0.12.1-2.mga8 version shipped with General Availability ISO.

Updating to vlc-3.0.12.1-2.1.mga8.tainted.
Successful.

Trying to read the above Comment 4 video... success.

Approval.
Leaving this awhile for other tests and see no regression.

Assignee: pkg-bugs => qa-bugs
Whiteboard: (none) => MGA8-64-OK

Comment 34 Philippe Didier 2021-02-26 18:24:28 CET
Hi

MGA8 x86_64, Plasma 5.20.4 too

nVidia  GeForce GT 1030
proprietary driver

I uninstalled my own enhanced packages

installed the tainted rpm from tainted
problem reappears

then updated with the version from /tainted/update/testing
Everything fine 

MGA8-64-OK too for me
Comment 35 Aurelien Oudelet 2021-03-01 15:02:11 CET
Validating,
Advisory pushed to SVN.

CC: (none) => sysadmin-bugs
Keywords: (none) => advisory, validated_update
Source RPM: vlc-3.0.12.1-2 (tainted), => vlc-3.0.12.1-2.mga8.src.rpm vlc-3.0.12.1-2.mga8.tainted.src.rpm

Lewis Smith 2021-03-02 10:37:39 CET

See Also: (none) => https://bugs.mageia.org/show_bug.cgi?id=28504

Comment 36 Mageia Robot 2021-03-02 23:35:05 CET
An update for this issue has been pushed to the Mageia Updates repository.

https://advisories.mageia.org/MGAA-2021-0029.html

Status: NEW => RESOLVED
Resolution: (none) => FIXED

Comment 37 Morgan Leijström 2021-03-03 09:58:19 CET
Marked FIXED by update in Errata

Note You need to log in before you can comment on or make changes to this bug.