Bug 2321 - Vlc crashes while loading "audio_output" plugin
: Vlc crashes while loading "audio_output" plugin
Status: RESOLVED WORKSFORME
Product: Desktop Bugs
Classification: ROSA Desktop
Component: Main Packages
: Fresh
: x86_64 Linux
: Low minor
: ---
Assigned To: Eugene Shatokhin
: ROSA Linux Bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2013-07-09 17:00 MSD by Stanislav Fomin
Modified: 2014-09-23 10:58 MSD (History)
5 users (show)

See Also:
RPM Package: vlc-2.0.6-1-rosa2012.1.x86_64
ISO-related:
Bad POT generating:
Upstream:


Attachments
Output of vlc -vvv (2.24 KB, text/plain)
2013-07-09 17:00 MSD, Stanislav Fomin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Stanislav Fomin 2013-07-09 17:00:02 MSD
Created attachment 1654 [details]
Output of vlc -vvv

Description of problem:

When Vlc player starts, it during loading of "audio_output" plugin.

If I remove /usr/lib64/vlc/plugins/audio_output directory, Vlc starts without crash.

GDB output with the backtrace:
(gdb) r
Starting program: /usr/bin/vlc 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
VLC media player 2.0.6 Twoflower (revision 2.0.6-0-gbe9623c)

Program received signal SIGSEGV, Segmentation fault.
__strcmp_sse42 () at ../sysdeps/x86_64/multiarch/strcmp-sse42.S:163
163		movdqu	(%rdi), %xmm1
(gdb) thread apply all bt

Thread 1 (Thread 0x7ffff7fca740 (LWP 15515)):
#0  __strcmp_sse42 () at ../sysdeps/x86_64/multiarch/strcmp-sse42.S:163
#1  0x00007ffff3804f19 in g_str_equal () from /lib64/libglib-2.0.so.0
#2  0x00007ffff380464f in g_hash_table_lookup () from /lib64/libglib-2.0.so.0
#3  0x00007ffff3823b5f in g_quark_from_static_string () from /lib64/libglib-2.0.so.0
#4  0x00007fffec0606ac in ?? () from /lib64/libgobject-2.0.so.0
#5  0x00007ffff7debe66 in call_init (l=<optimized out>, argc=1, argv=0x7fffffffe128, env=0x7fffffffe138)
    at dl-init.c:83
#6  0x00007ffff7debf20 in call_init (env=<optimized out>, argv=<optimized out>, argc=<optimized out>, l=0x8347b0)
    at dl-init.c:54
#7  _dl_init (main_map=0x82f880, argc=1, argv=0x7fffffffe128, env=0x7fffffffe138) at dl-init.c:132
#8  0x00007ffff7df02ad in dl_open_worker (a=0x7fffffffd600) at dl-open.c:562
#9  0x00007ffff7debcf6 in _dl_catch_error (objname=0x7fffffffd5f0, errstring=0x7fffffffd5f8, mallocedp=
    0x7fffffffd5e0, operate=0x7ffff7defee0 <dl_open_worker>, args=0x7fffffffd600) at dl-error.c:178
#10 0x00007ffff7defb3c in _dl_open (file=0x847e60 "/usr/lib64/vlc/plugins/gui/libqt4_plugin.so", mode=
    -2147483647, caller_dlopen=<optimized out>, nsid=-2, argc=1, argv=0x7fffffffe128, env=0x7fffffffe138)
    at dl-open.c:652
#11 0x00007ffff74bb016 in dlopen_doit (a=0x7fffffffd810) at dlopen.c:67
#12 0x00007ffff7debcf6 in _dl_catch_error (objname=0x604020, errstring=0x604028, mallocedp=0x604018, operate=
    0x7ffff74bafb0 <dlopen_doit>, args=0x7fffffffd810) at dl-error.c:178
#13 0x00007ffff74bb62c in _dlerror_run (operate=0x7ffff74bafb0 <dlopen_doit>, args=0x7fffffffd810)
    at dlerror.c:164
#14 0x00007ffff74bb0b1 in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:88
#15 0x00007ffff797aa1d in module_Load (p_this=0x605108, psz_file=<optimized out>, p_handle=0x7fffffffd878, 
    lazy=<optimized out>) at posix/plugin.c:62
#16 0x00007ffff7961be8 in module_InitDynamic (obj=0x605108, path=
    0x847e60 "/usr/lib64/vlc/plugins/gui/libqt4_plugin.so", fast=<optimized out>) at modules/bank.c:536
#17 0x00007ffff7961ebb in AllocatePluginFile (st=<optimized out>, relpath=<optimized out>, 
    abspath=<optimized out>, bank=<optimized out>) at modules/bank.c:479
#18 AllocatePluginDir (bank=0x7fffffffdab0, maxdepth=3960033946, absdir=
    0x5e2f3160 <Address 0x5e2f3160 out of bounds>, reldir=0x619b30 "gui") at modules/bank.c:440
#19 0x00007ffff79620ad in AllocatePluginDir (bank=0x7fffffffdab0, maxdepth=3960033946, absdir=
    0x5e2f3160 <Address 0x5e2f3160 out of bounds>, reldir=0x0) at modules/bank.c:444
#20 0x00007ffff79621d0 in AllocatePluginPath (p_this=0x605108, path=0x619e60 "/usr/lib64/vlc/plugins", mode=
    CACHE_USE) at modules/bank.c:353
#21 0x00007ffff796285d in AllocateAllPlugins (p_this=0x605108) at modules/bank.c:282
#22 module_LoadPlugins (obj=0x605108) at modules/bank.c:189
#23 0x00007ffff78f78bb in libvlc_InternalInit (p_libvlc=0x605108, i_argc=3, ppsz_argv=0x7fffffffde40)
    at libvlc.c:247
#24 0x00007ffff7bc9fb5 in libvlc_new (argc=2, argv=<optimized out>) at core.c:59
#25 0x000000000040145c in main (i_argc=<optimized out>, ppsz_argv=<optimized out>) at vlc.c:217



How reproducible:
Always reproducible on my machine.

Steps to Reproduce:
1. Start Vlc
Comment 1 Eugene Shatokhin 2013-07-09 17:05:45 MSD
Possibly similar issue:
https://bugs.archlinux.org/task/35120
Comment 2 Eugene Shatokhin 2013-08-05 10:50:41 MSD
*** Bug 2434 has been marked as a duplicate of this bug. ***
Comment 3 FirstLevel 2013-08-05 17:38:39 MSD
(In reply to comment #2)
> *** Bug 2434 has been marked as a duplicate of this bug. ***

This is output of ls -a 
[root@homelinux ~]# ls -al /usr/lib64/vlc/plugins/audio_output
итого 116
drwxr-xr-x  2 root root  4096 авг.   3 20:46 ./
drwxr-xr-x 27 root root  4096 авг.   3 20:46 ../
-rwxr-xr-x  1 root root  6056 апр.  12 15:06 libadummy_plugin.so*
-rwxr-xr-x  1 root root 23064 апр.  12 15:06 libalsa_plugin.so*
-rwxr-xr-x  1 root root 10184 апр.  12 15:06 libamem_plugin.so*
-rwxr-xr-x  1 root root 14416 апр.  12 15:06 libaout_file_plugin.so*
-rwxr-xr-x  1 root root 14496 апр.  12 15:06 libportaudio_plugin.so*
-rwxr-xr-x  1 root root 31448 апр.  12 15:06 libpulse_plugin.so*
Comment 4 Eugene Shatokhin 2013-08-06 11:11:22 MSD
(In reply to comment #3)
Have you tried vlc 2.0.8? If I understand your comment to bug #2434 correctly, the problem still shows up with 2.0.8?

The backtrace and messages you posted there, however, mention 2.0.6 only.
Comment 5 FirstLevel 2013-08-06 20:02:46 MSD
(In reply to comment #4)
> (In reply to comment #3)
> Have you tried vlc 2.0.8? If I understand your comment to bug #2434
> correctly, the problem still shows up with 2.0.8?
> 
> The backtrace and messages you posted there, however, mention 2.0.6 only.

VLC 2.0.8 has the same problem.

[alexx@homelinux ~]$ vlc
VLC media player 2.0.8 Twoflower (revision 2.0.7-29-g12aebf9)
Ошибка сегментирования (слепок снят)
Comment 6 Eugene Shatokhin 2013-08-07 10:42:16 MSD
(In reply to comment #5)
> VLC 2.0.8 has the same problem.

OK, then please install debuginfo packages for Vlc and libglib-2.0, post the output of 'vlc -vvv' here, run vlc under gdb and post the backtrace ('thread apply all bt') at the time of crash here too.
Comment 7 FirstLevel 2013-08-07 13:30:43 MSD
(In reply to comment #6)
> (In reply to comment #5)
> > VLC 2.0.8 has the same problem.
> 
> OK, then please install debuginfo packages for Vlc and libglib-2.0, post the
> output of 'vlc -vvv' here, run vlc under gdb and post the backtrace ('thread
> apply all bt') at the time of crash here too.

[alexx@homelinux ~]$ vlc -vvv 
VLC media player 2.0.8 Twoflower (revision 2.0.7-29-g12aebf9)
[0x7f4108] main libvlc debug: VLC media player - 2.0.8 Twoflower
[0x7f4108] main libvlc debug: Copyright © 1996-2013 VLC authors and VideoLAN
[0x7f4108] main libvlc debug: revision 2.0.7-29-g12aebf9
[0x7f4108] main libvlc debug: configured with ./configure  '--build=x86_64-unknown-linux-gnu' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/lib64' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--x-includes=/usr/include' '--x-libraries=/usr/lib64' '--enable-pvr' '--disable-dependency-tracking' '--disable-sse' '--enable-bonjour' '--enable-smb' '--enable-ncurses' '--enable-lirc' '--enable-xvideo' '--enable-aa' '--enable-sdl' '--disable-xosd' '--enable-mad' '--enable-vorbis' '--enable-ogg' '--enable-theora' '--enable-speex' '--enable-flac' '--enable-mkv' '--enable-dv' '--enable-dvbpsi' '--enable-shout' '--enable-jack' '--enable-libmpeg2' '--disable-dca' '--enable-live555' '--enable-gnutls' '--disable-rpath' '--enable-vcdx' '--enable-libcddb' '--disable-x264' '--enable-twolame' '--enable-bluray' '--enable-realrtsp' '--with-pic' 'build_alias=x86_64-unknown-linux-gnu' 'CFLAGS=-O2 -Wa,--compress-debug-sections -gdwarf-4 -fvar-tracking-assignments -frecord-gcc-switches -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fPIC' 'LDFLAGS= -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags -Wl,--hash-style=gnu' 'CPPFLAGS= -I/usr/include/ebml -I/usr/include/speex' 'CXXFLAGS=-O2 -Wa,--compress-debug-sections -gdwarf-4 -fvar-tracking-assignments -frecord-gcc-switches -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fPIC'
[0x7f4108] main libvlc debug: searching plug-in modules
[0x7f4108] main libvlc debug: loading plugins cache file /usr/lib64/vlc/plugins/plugins.dat
[0x7f4108] main libvlc debug: recursively browsing `/usr/lib64/vlc/plugins'
Ошибка сегментирования (слепок снят)
[alexx@homelinux ~]$
Comment 8 FirstLevel 2013-08-07 13:31:10 MSD
(In reply to comment #6)
> (In reply to comment #5)
> > VLC 2.0.8 has the same problem.
> 
> OK, then please install debuginfo packages for Vlc and libglib-2.0, post the
> output of 'vlc -vvv' here, run vlc under gdb and post the backtrace ('thread
> apply all bt') at the time of crash here too.

[alexx@homelinux ~]$ gdb /usr/bin/vlc
GNU gdb (GDB) 7.3.50.20110722-4 (ROSA Linux release 2012.1)
Copyright (C) 2011 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-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/vlc...Reading symbols from /usr/lib/debug/usr/bin/vlc.debug...done.
done.
(gdb) run
Starting program: /usr/bin/vlc 
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
VLC media player 2.0.8 Twoflower (revision 2.0.7-29-g12aebf9)

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7231798 in __strcmp_sse42 () from /lib64/libc.so.6
(gdb)
Comment 9 Postnikov Dmitry 2013-08-07 13:42:03 MSD
If you try to do so:

vlc-cache-gen -f /usr/lib64/vlc/plugins

(or /usr/lib64/vlc/vlc-cache-gen -f /usr/lib64/vlc/plugins)
Comment 10 Eugene Shatokhin 2013-08-07 14:22:54 MSD
(In reply to comment #8)
While executing Vlc under GDB, please get the backtrace at the time of crash and post it here. 'bt' or 'thread apply all bt' commands can be used in GDB for that purpose.
Comment 11 FirstLevel 2013-08-08 10:05:39 MSD
(In reply to comment #10)
> (In reply to comment #8)
> While executing Vlc under GDB, please get the backtrace at the time of crash
> and post it here. 'bt' or 'thread apply all bt' commands can be used in GDB
> for that purpose.

Could You give me more detailed algorithm?
Comment 12 Eugene Shatokhin 2013-08-08 11:20:31 MSD
(In reply to comment #11)
> Could You give me more detailed algorithm?

$ gdb --args vlc -vvv

(gdb) set logging file gdb.log
(gdb) set logging on
(gdb) run

<wait till Vlc crashes>

(gdb) thread apply all bt
(This will show the backtrace for each thread in Vlc process)

Post gdb.log here.
Comment 13 FirstLevel 2013-08-08 13:58:56 MSD
(In reply to comment #9)
> If you try to do so:
> 
> vlc-cache-gen -f /usr/lib64/vlc/plugins
> 
> (or /usr/lib64/vlc/vlc-cache-gen -f /usr/lib64/vlc/plugins)

[root@rosand andrei]# /usr/lib64/vlc/vlc-cache-gen -f /usr/lib64/vlc/plugins
Ошибка сегментирования (слепок снят)
Comment 14 FirstLevel 2013-08-12 09:11:57 MSD
(In reply to comment #12)
> (In reply to comment #11)
> > Could You give me more detailed algorithm?
> 
> $ gdb --args vlc -vvv
> 
> (gdb) set logging file gdb.log
> (gdb) set logging on
> (gdb) run
> 
> <wait till Vlc crashes>
> 
> (gdb) thread apply all bt
> (This will show the backtrace for each thread in Vlc process)
> 
> Post gdb.log here.

This is output of starting vlc -vvv in gdb:


Starting program: /usr/bin/vlc -vvv
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff723cc96 in __strcmp_ssse3 () from /lib64/libc.so.6

Thread 1 (Thread 0x7ffff7fd5740 (LWP 5711)):
#0  0x00007ffff723cc96 in __strcmp_ssse3 () from /lib64/libc.so.6
#1  0x00007fffefbdce19 in g_str_equal () from /lib64/libglib-2.0.so.0
#2  0x00007fffefbdc54f in g_hash_table_lookup () from /lib64/libglib-2.0.so.0
#3  0x00007fffefbfba5f in g_quark_from_static_string () from /lib64/libglib-2.0.so.0
#4  0x00007fffec4ca6ac in ?? () from /lib64/libgobject-2.0.so.0
#5  0x00007ffff7debe66 in call_init.part.0 () from /lib64/ld-linux-x86-64.so.2
#6  0x00007ffff7debf20 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#7  0x00007ffff7df02ad in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#8  0x00007ffff7debcf6 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#9  0x00007ffff7defb3c in _dl_open () from /lib64/ld-linux-x86-64.so.2
#10 0x00007ffff74bb016 in ?? () from /lib64/libdl.so.2
#11 0x00007ffff7debcf6 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#12 0x00007ffff74bb62c in ?? () from /lib64/libdl.so.2
#13 0x00007ffff74bb0b1 in dlopen () from /lib64/libdl.so.2
#14 0x00007ffff797a9ed in module_Load (p_this=0x605108, psz_file=<optimized out>, p_handle=0x7fffffffd338, lazy=<optimized out>) at posix/plugin.c:62
#15 0x00007ffff7961bb8 in module_InitDynamic (obj=0x605108, path=0x7883b0 "/usr/lib64/vlc/plugins/gui/libqt4_plugin.so", fast=<optimized out>)
    at modules/bank.c:536
#16 0x00007ffff7961e8b in AllocatePluginFile (st=<optimized out>, relpath=<optimized out>, abspath=<optimized out>, bank=<optimized out>)
    at modules/bank.c:479
#17 AllocatePluginDir (bank=0x7fffffffd570, maxdepth=3964662426, absdir=0x5e2f3160 <Address 0x5e2f3160 out of bounds>, reldir=0x619950 "gui")
    at modules/bank.c:440
#18 0x00007ffff796207d in AllocatePluginDir (bank=0x7fffffffd570, maxdepth=3964662426, absdir=0x5e2f3160 <Address 0x5e2f3160 out of bounds>, 
    reldir=0x0) at modules/bank.c:444
#19 0x00007ffff79621a0 in AllocatePluginPath (p_this=0x605108, path=0x636440 "/usr/lib64/vlc/plugins", mode=CACHE_USE) at modules/bank.c:353
#20 0x00007ffff796282d in AllocateAllPlugins (p_this=0x605108) at modules/bank.c:282
#21 module_LoadPlugins (obj=0x605108) at modules/bank.c:189
#22 0x00007ffff78f78bb in libvlc_InternalInit (p_libvlc=0x605108, i_argc=4, ppsz_argv=0x7fffffffd900) at libvlc.c:247
#23 0x00007ffff7bc9fb5 in libvlc_new (argc=3, argv=<optimized out>) at core.c:59
#24 0x000000000040145c in main (i_argc=<optimized out>, ppsz_argv=<optimized out>) at vlc.c:217
Comment 15 Ural Mullabaev 2013-08-22 21:24:32 MSD
I have two partitions with the same behavior and without this issue. Both partitions with GNOME 3.8 and they difference by installed develelopers and KDE packages on problem system. VLC packages are identically. I suppose that some packages can affect to the plugins.

There are two ways to solve this issue for me:
- building new version from upstream git sources;
- removing following plugins: 
    access/libpulsesrc_plugin.so, 
    audio_output/libpulse_plugin.so, 
    services_discovery/libmtp_plugin.so,
    services_discovery/libpulselist_plugin.so,
    text_renderer/libsvg_plugin.so.
Comment 16 Stanislav Fomin 2013-10-22 02:11:39 MSD
the bug rarely appears.

I lower priority before we can understand how to reproduce it.
Comment 17 FirstLevel 2014-06-03 15:17:51 MSD
checking the relevance
Comment 18 Eugene Shatokhin 2014-09-23 10:58:32 MSD
The problem has not shown up in ROSA 2014.1 so far. Feel free to reopen if it occurs again.