Hi,
vlc 3.0.11.1-6 segfaults on my laptop with artix-runit, as soon as i want to play a video.
output
vlc Videos/pmpc_desktop.mp4
VLC media player 3.0.11.1 Vetinari (revision 3.0.11.1-0-g52483f3ca2)
[000055bd9f563580] main libvlc: VLC wird mit dem Standard-Interface ausgeführt. Benutzen Sie 'cvlc', um VLC ohne Interface zu verwenden.
Speicherzugriffsfehler
dmesg line
[ 1905.321253] traps: vlc[2824] general protection fault ip:7f8a8bb357e4 sp:7f8a7f3c18c0 error:0 in libstdc++.so.6.0.28[7f8a8bb2a000+ec000]
I ran pacman -Syu.
On my desktop system the same version works.
I had a similar issue with gnucash today which I reported (https://forum.artixlinux.org/index.php/topic,2129.0.html), and which was due some corrupted/old(?) libguile-2.2. Reinstalling guile fixed it. I checked the file because it was mentioned in dmesg.
In this case libstc++ is mentioned. This file is correct (I crosschecked with my desktop system).
Any ideas, how to find the broken file?
pacman -Qkk vlc
Warnung: vlc: /usr/lib/vlc/plugins/plugins.dat (Zeit der Veränderung stimmt nicht überein)
Warnung: vlc: /usr/lib/vlc/plugins/plugins.dat (Größen stimmen nicht überein)
vlc: 1057 Dateien gesamt, 1 veränderte Datei
This is the same result I get on my desktop system (and after a fresh install. Is this a package problem?).
You could try:
$ pacman -Qkk
to check files in packages. Also run whatever fsck (check type, not full check & fix) is suitable for your filesystem, e.g. on BTRFS:
# btrfs scrub start /
# btrfs scrub status /
reinstall vlc can help too
interesting problems on your computer. I have not yet encountered a similar problem with my computer
$ sudo pacman -Qkkq
base /usr/bin/init
fcron /var/spool/fcron/systab.orig
fcron-runit /etc/runit/sv/fcron/run
java-runtime-common /usr/lib/jvm/default
java-runtime-common /usr/lib/jvm/default-runtime
linux /usr/lib/modules/5.9.14-artix1-1/modules.alias
linux /usr/lib/modules/5.9.14-artix1-1/modules.alias.bin
linux /usr/lib/modules/5.9.14-artix1-1/modules.builtin.alias.bin
linux /usr/lib/modules/5.9.14-artix1-1/modules.builtin.bin
linux /usr/lib/modules/5.9.14-artix1-1/modules.dep
linux /usr/lib/modules/5.9.14-artix1-1/modules.dep.bin
linux /usr/lib/modules/5.9.14-artix1-1/modules.devname
linux /usr/lib/modules/5.9.14-artix1-1/modules.softdep
linux /usr/lib/modules/5.9.14-artix1-1/modules.symbols
linux /usr/lib/modules/5.9.14-artix1-1/modules.symbols.bin
rtkit /usr/lib/sysusers.d/rtkit.conf
shadow /usr/bin/newgidmap
shadow /usr/bin/newuidmap
vlc /usr/lib/vlc/plugins/plugins.dat
Do you see anything suspicious?
I have an ext4 partition inside lvm inside luks. currently I don't have a live system, so that i could check the partition without having it mounted. man e2fsck says only pros should maybe fsck a mounted system.
I already did a reinstall with pacman -R and then -S.
Now I tried inspecting the coredump. Its 249MB big (ulimit is at 500MB). But:
$ file core
core: ELF 64-bit LSB core file, x86-64, version 1 (SYSV), SVR4-style, from 'vlc pmpc_desktop.mp4', real uid: 1000, effective uid: 1000, real gid: 1000, effective gid: 1000, execfn: '/usr/bin/vlc', platform: 'x86_64'
$ gdb core
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
"0x7ffe8074cc90s": not in executable format: file format not recognized
(gdb) bt
No stack.
(gdb)
Somethings up with the core file, but my latin ends here.
You could use this script here, copy it to a file and make it executable with chmod a+x.
https://github.com/eli-schwartz/dotfiles/blob/master/bin/pkg-list-linked-libraries (https://github.com/eli-schwartz/dotfiles/blob/master/bin/pkg-list-linked-libraries)
Then use this simple command (after running updatedb) to check if all the binary requirements for vlc are installed:
./pkg-list-linked-libraries /var/cache/pacman/pkg/vlc-3.0.11.1-6-x86_64.pkg.tar.zst |grep NEEDED | sort | uniq | sed 's/^ *[^ ][^ ]* *//' | xargs -n1 -I _solib bash -c 'locate _solib || echo "ERROR COULD NOT FIND _solib"'
It may say it can't find some that won't matter because they are optional, but it might help point you in the right direction, if it was related to any missing binary dependencies.
I think when you run gdb you do gdb executable coredumpfile, ie executable might be /usr/bin/vlc for example, it would tell you more if vlc is compiled with debugging symbols, but would still be helpful without. For a segfault you might get some helpful info running vlc with valgrind as well:
$ valgrind --tool=memcheck vlc video.mp4
I get various errors from that (and just running on the command line) even though VLC works for me, so some are "normal" errors.
Here are the errors.
ERROR COULD NOT FIND libaribb25.so.0
ERROR COULD NOT FIND libgoom2.so.0
ERROR COULD NOT FIND liblirc_client.so.0
ERROR COULD NOT FIND libnfs.so.13
ERROR COULD NOT FIND libpcsclite.so.1
ERROR COULD NOT FIND libprojectM.so.3
ERROR COULD NOT FIND libSDL_image-1.2.so.0
ERROR COULD NOT FIND libsmbclient.so.0
ERROR COULD NOT FIND libtiger.so.5
In my case I am also missing all of those, except these 2, which are installed:
/usr/lib/libtiger.so is owned by libtiger 0.3.4-6
/usr/lib/libsmbclient.so is owned by smbclient 4.13.3-2
ERROR COULD NOT FIND libaa.so.1
ERROR COULD NOT FIND libaribb25.so.0
ERROR COULD NOT FIND libcaca.so.0
ERROR COULD NOT FIND libchromaprint.so.1
ERROR COULD NOT FIND libdc1394.so.25
ERROR COULD NOT FIND libgme.so.0
ERROR COULD NOT FIND libgoom2.so.0
ERROR COULD NOT FIND liblirc_client.so.0
ERROR COULD NOT FIND libmicrodns.so.1
ERROR COULD NOT FIND libmtp.so.9
ERROR COULD NOT FIND libnfs.so.13
ERROR COULD NOT FIND libpcsclite.so.1
ERROR COULD NOT FIND libprojectM.so.3
ERROR COULD NOT FIND libprotobuf-lite.so.23
ERROR COULD NOT FIND libSDL_image-1.2.so.0
ERROR COULD NOT FIND libshout.so.3
ERROR COULD NOT FIND libtwolame.so.0
ERROR COULD NOT FIND libzvbi.so.0
Installing both packages doesn't help.
heres the backtrace
$ gdb /usr/bin/vlc core
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/vlc...
(No debugging symbols found in /usr/bin/vlc)
[New LWP 13774]
[New LWP 13771]
[New LWP 13770]
[New LWP 13772]
[New LWP 13775]
[New LWP 13773]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `vlc pmpc_desktop.mp4'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 __cxxabiv1::__dynamic_cast (src_ptr=0x7f7160e818a0, src_type=0x7f716a4748a8 <typeinfo for TagLib::File>,
dst_type=0x7f716a474570 <typeinfo for TagLib::APE::File>, src2dst=0)
at /build/gcc/src/gcc/libstdc++-v3/libsupc++/dyncast.cc:68
68 /build/gcc/src/gcc/libstdc++-v3/libsupc++/dyncast.cc: Datei oder Verzeichnis nicht gefunden.
[Current thread is 1 (Thread 0x7f716af1b640 (LWP 13774))]
(gdb) bt
#0 __cxxabiv1::__dynamic_cast(void const*, __cxxabiv1::__class_type_info const*, __cxxabiv1::__class_type_info const*, ptrdiff_t)
(src_ptr=0x7f7160e818a0, src_type=0x7f716a4748a8 <typeinfo for TagLib::File>, dst_type=0x7f716a474570 <typeinfo for TagLib::APE::File>, src2dst=0) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/dyncast.cc:68
#1 0x00007f716a67019b in () at /usr/lib/vlc/plugins/meta_engine/libtaglib_plugin.so
#2 0x00007f71706b894b in () at /usr/lib/libvlccore.so.9
#3 0x00007f71706b8f0c in vlc_module_load () at /usr/lib/libvlccore.so.9
#4 0x00007f71706ed29f in () at /usr/lib/libvlccore.so.9
#5 0x00007f71706f2d57 in () at /usr/lib/libvlccore.so.9
#6 0x00007f71706f4e1d in () at /usr/lib/libvlccore.so.9
#7 0x00007f71709773e9 in start_thread () at /usr/lib/libpthread.so.0
#8 0x00007f717089f293 in clone () at /usr/lib/libc.so.6
(gdb)
From the backtrace it looks more like the problem is in VLC itself to me. You could try downgrading it, 3.0.11.1-4 worked for me when I tried just now, without needing to downgrade anything else. It gave a couple less error messages than the latest version too. VLC uses some complex graphics stuff and may not run the same code paths on different hardware.
3.0.11.1-6:
$ vlc vid1.mp4
VLC media player 3.0.11.1 Vetinari (revision 3.0.11.1-0-g52483f3ca2)
[0000558fe5c11f10] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[0000558fe5b2a580] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[00007fc46800d000] gl gl: Initialized libplacebo v2.72.0 (API v72)
Failed to open VDPAU backend libvdpau_nouveau.so: cannot open shared object file: No such file or directory
Failed to open VDPAU backend libvdpau_nouveau.so: cannot open shared object file: No such file or directory
[00007fc46800d000] gl gl: Initialized libplacebo v2.72.0 (API v72)
QObject::~QObject: Timers cannot be stopped from another thread
vs 3.0.11.1-4
$ vlc vid2.mp4
VLC media player 3.0.11.1 Vetinari (revision 3.0.11.1-0-g52483f3ca2)
[000055cda8d9f3c0] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[000055cda8ca8580] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
Failed to open VDPAU backend libvdpau_nouveau.so: cannot open shared object file: No such file or directory
QObject::~QObject: Timers cannot be stopped from another thread
Downgrading 3.0.11.1-6 => 3.0.11.1-4 doesn't help.
Vlc of course works without problem for mostly users. Seems, that (same as another your reported problems) some is messy in your computer 8)