VLC crashes on start up #1188

Closed
j16180339887 opened this Issue Oct 28, 2016 · 66 comments

Comments

Projects
None yet
9 participants

j16180339887 commented Oct 28, 2016

$ vlc
VLC media player 2.2.4 Weatherwax (revision 2.2.3-37-g888b7e89)
[000055fe27613148] core libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[1]    4457 segmentation fault (core dumped)  vlc

Using gdb

$ gdb vlc
GNU gdb (Ubuntu 7.12-0ubuntu1) 7.12
Copyright (C) 2016 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-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://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 vlc...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/vlc 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
VLC media player 2.2.4 Weatherwax (revision 2.2.3-37-g888b7e89)
[New Thread 0x7ffff2a5b700 (LWP 5165)]
[New Thread 0x7ffff7f4d700 (LWP 5166)]
[New Thread 0x7ffff1a39700 (LWP 5167)]
[0000555555759148] core libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[New Thread 0x7ffff016b700 (LWP 5168)]
[New Thread 0x7fffd7bf4700 (LWP 5169)]
[New Thread 0x7fffd6764700 (LWP 5170)]
[New Thread 0x7fffcd824700 (LWP 5171)]
[New Thread 0x7fffcd023700 (LWP 5172)]
[New Thread 0x7fffcc822700 (LWP 5173)]
[New Thread 0x7fffc7fff700 (LWP 5174)]
[New Thread 0x7fffc7168700 (LWP 5175)]

Thread 5 "vlc" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff016b700 (LWP 5168)]
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff10c1e7e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#2  0x00007ffff10c1a81 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#3  0x00007ffff12b0cf5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#4  0x00007ffff12b0d83 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5  0x00007ffff12b0dd2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x00007ffff14e91e7 in ?? () from /usr/lib/vlc/plugins/gui/libqt4_plugin.so
#7  0x00007ffff14f3439 in ?? () from /usr/lib/vlc/plugins/gui/libqt4_plugin.so
#8  0x00007ffff14fa0c6 in ?? () from /usr/lib/vlc/plugins/gui/libqt4_plugin.so
#9  0x00007ffff14e345d in ?? () from /usr/lib/vlc/plugins/gui/libqt4_plugin.so
#10 0x00007ffff79a170a in start_thread (arg=0x7ffff016b700) at pthread_create.c:333
#11 0x00007ffff74d70af in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
(gdb) 

Ubuntu Server 4.8.0-26
LXQt 0.10.0
Happened about a month ago, vlc works well before that.
Any ideas ? Thanks.

Contributor

jubalh commented Oct 28, 2016

And why is this an LXQt issue?

Member

pmattern commented Oct 28, 2016

This is by no means a problem of LXQt even if you run VLC within an LXQt session.
It must be either a general downstream (Ubuntu) problem with VLC or a problem affecting your particular system and has to be treated as such.

@pmattern pmattern closed this Oct 28, 2016

VLC on Ubuntu with unity works fine,
VLC on Ubuntu with LXQt crashes.

Owner

agaida commented Oct 28, 2016

so i guess the lubuntu team is happy to help with that - one will find them in IRC freenode #lubuntu and #lubuntu-dev

j16180339887 commented Oct 29, 2016

Thanks @agaida , they told me to compile vlc myself, and it works great !

The following steps are modified from http://www.andrews-corner.org/linux/ubuntu/vlc.html

sudo apt-get -y install build-essential git-core checkinstall \
automake yasm cmake && mkdir -pv $HOME/vlc_build
sudo apt-get -y install liba52-0.7.4-dev libaa1-dev libasound2-dev libass-dev \
libavahi-client-dev libcaca-dev libcairo2-dev libcddb2-dev libcdio-dev libdca-dev \
libdvbpsi-dev libebml-dev libfaad-dev libflac-dev libfreetype6-dev libfribidi-dev \
libgcrypt11-dev libgl1-mesa-dev libglib2.0-0 libgnutls28-dev libid3tag0-dev \
libjack-jackd2-dev libkate-dev liblircclient-dev liblua5.1-0-dev libmad0-dev \
libmatroska-dev libmodplug-dev libmpcdec-dev libmpeg2-4-dev libmtp-dev \
libncursesw5-dev libnotify-dev libogg-dev liboggkate-dev libpango1.0-dev \
libpng12-0 libprojectm-dev libprojectm-qt-dev libproxy-dev libpulse-dev \
libqt4-dev libraw1394-dev librsvg2-dev libschroedinger-dev libsdl-image1.2-dev \
libsdl1.2-dev libshout3-dev libsmbclient-dev libspeex-dev libsqlite3-dev \
libsysfs-dev libtag1-dev libtar-dev libgme-dev libtheora-dev libtool \
libtwolame-dev libudev-dev libupnp-dev libv4l-dev libvcdinfo-dev libvorbis-dev \
libva-dev libvpx-dev libx11-dev libx11-xcb-dev libxcb-composite0-dev libx265-dev \
libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-xv0-dev libxcb-xvmc0-dev \
libxcb1-dev libxext-dev libxml2-dev libxpm-dev libxt-dev libxv-dev libzvbi-dev lua5.1 \
qt4-qtconfig libspeexdsp-dev libsamplerate0-dev libvdpau-dev libxpm-dev libxinerama-dev \
libtar-dev libgtk2.0-dev libdc1394-22-dev libopus-dev libmpg123-dev protobuf-c-compiler \
libdvdnav-dev libdvdnav4 libdvdread-dev libdvdread4 libfdk-aac-dev
sudo apt-get install libdvd-pkg
sudo dpkg-reconfigure libdvd-pkg
if [ "$(uname -m)" = "x86_64" ]; then
  ARCHOPTS="--enable-pic"
 else
  ARCHOPTS=""
fi && \
cd $HOME/vlc_build && \
git clone git://git.videolan.org/x264.git --depth 1 && \
cd x264 && \
./configure --prefix=$HOME/vlc_build/vlcdeps/usr \
            --enable-static \
            --disable-cli \
            $ARCHOPTS && \
make && make install
sudo apt-get -y install libmp3lame-dev zlib1g-dev libgsm1-dev libopenjpeg-dev && \
cd $HOME/vlc_build && \
git clone --depth=1 git://source.ffmpeg.org/ffmpeg && cd ffmpeg && \
if [ "$(uname -m)" = "x86_64" ]; then
  ARCHOPTS="--enable-pic"
 else
  ARCHOPTS=""
fi && \
CPPFLAGS="-I$HOME/vlc_build/vlcdeps/usr/include" \
LDFLAGS="-L$HOME/vlc_build/vlcdeps/usr/lib" \
PKG_CONFIG_PATH="$HOME/vlc_build/vlcdeps/usr/lib/pkgconfig" \
./configure --prefix=$HOME/vlc_build/vlcdeps/usr \
         $ARCHOPTS \
    --disable-doc \
    --disable-encoder=vorbis \
    --disable-decoder=opus \
    --enable-libgsm \
    --enable-libopenjpeg \
    --disable-debug \
    --disable-avdevice \
    --disable-devices \
    --disable-avfilter \
    --disable-filters \
    --disable-protocol=concat \
    --disable-bsfs \
    --disable-bzlib \
    --disable-avresample \
    --disable-swresample \
    --disable-iconv \
    --enable-libfdk-aac \
    --enable-libx265 \
    --enable-libmp3lame \
    --enable-libvpx \
    --disable-decoder=libvpx_vp8 \
    --disable-decoder=libvpx_vp9 \
    --target-os=linux \
    --enable-static \
    --disable-shared \
    --enable-gpl \
    --enable-nonfree && \
make -j 8 && make install-libs install-headers && make distclean
sed -i_bak 's#Libs: -L${libdir}  -lavutil -lm#\
Libs: -L${libdir}  -lavutil -lm  -lX11 -lm  -lvdpau -lva -lva-drm -lva-x11#' \
~/vlc_build/vlcdeps/usr/lib/pkgconfig/libavutil.pc
cd $HOME/vlc_build && git clone git://git.videolan.org/vlc.git --depth 1 && \
cd $HOME/vlc_build/vlc && ./bootstrap && \
CPPFLAGS="-I$HOME/vlc_build/vlcdeps/usr/include" \
LDFLAGS="-L$HOME/vlc_build/vlcdeps/usr/lib" \
PKG_CONFIG_PATH="$HOME/vlc_build/vlcdeps/usr/lib/pkgconfig" \
./configure --prefix=/usr/local && \
make -j 8 && \
mkdir -vp doc-pak && cp -v AUTHORS COPYING INSTALL NEWS README THANKS doc-pak && \
sudo checkinstall --pakdir "$HOME/vlc_build" --backup=no --deldoc=yes --pkgname \
                  --fstrans=no --deldesc=yes --delspec=yes --default && \
make distclean && sudo ldconfig

Finally, just start VLC
$ vlc
and everything works great (so far).

Owner

agaida commented Oct 29, 2016

glad they could help

Member

pmattern commented Oct 29, 2016

VLC on Ubuntu with unity works fine,
VLC on Ubuntu with LXQt crashes.

Just had another look. Both VLC 2.2.2 on Ubuntu 16.04 / LXQt 0.10 and 2.2.4 on up-to-date Arch Linux running latest VCS checkouts of LXQt are running flawlessly without the crash you're seeing here.
So it's definitely not an issue of upstream LXQt and as far as upstream is concerned the only potentially interesting question to remain is why you've been seeing the crash in LXQt sessions only.

j16180339887 commented Oct 29, 2016

For those who may be interested, here is how to reproduce it:

  • Install latest Ubuntu Server
  • Edit /etc/apt/sources.list, replace all $version_name with "devel"
    • Ex: replace all "xenial" with "devel"
    • After this, you will always get the latest packages
  • Run apt-get update && apt-get install lxqt xorg openbox
  • reboot
  • Run apt-get install vlc
Owner

agaida commented Oct 29, 2016

@pmattern - thats easy i think - it depends with which dependencies vlc is built - i would further guess that all would be fine with a local rebuild of the package - eventually with changing the debian/control file a little bit. (Qt4 vs Qt5 and so on)

Edit: and making theses changes is nothing what a normal user is supposed to do.

Member

tsujan commented Oct 29, 2016

...the only potentially interesting question to remain is why you've been seeing the crash in LXQt sessions only.

I also think it should be impossible. If that really occurred (not a human error), we could be concerned.

@tsujan tsujan reopened this Oct 29, 2016

Member

tsujan commented Oct 29, 2016

However, @j16180339887 didn't add a meaningful backtrace. So, I count on the human error.

@tsujan tsujan closed this Oct 29, 2016

Looks like all qt4 softwares crash in my case,
I just install qBittorrent and it crashes on startup.

Member

tsujan commented Oct 29, 2016

Looks like all qt4 softwares crash in my case

Only under LXQt?!

j16180339887 commented Oct 29, 2016

Yes, qt4 softwares on Ubuntu with unity work fine.

Member

tsujan commented Oct 29, 2016

Please install systemd-coredump, make a qt4 app (APP_NAME) crash and do:

coredumpctl gdb APP_NAME

Then type where and paste the output after where here!

j16180339887 commented Oct 29, 2016

$ qbittorrent 


*************************************************************
Catching signal: SIGSEGV
Please file a bug report at http://bug.qbittorrent.org and provide the following information:

qBittorrent version: v3.3.6
stack trace:
[1]    6100 segmentation fault (core dumped)  qbittorrent

then

$ coredumpctl gdb qbittorrent
No match found.
Member

tsujan commented Oct 29, 2016

Also install gdb and a reboot may be needed.

Member

tsujan commented Oct 29, 2016

And qbittorrent is qt5 based on Debian.

Also install gdb

$ gdb --version
GNU gdb (Ubuntu 7.12-0ubuntu1) 7.12

and a reboot may be needed.

OK

And qbittorrent is qt5 based on Debian.

$ apt-cache search qbittorrent
qbittorrent - bittorrent client based on libtorrent-rasterbar with a Qt4 GUI
$ coredumpctl gdb qbittorrent
No match found.
Contributor

jubalh commented Oct 29, 2016

Yes, qt4 softwares on Ubuntu with unity work fine.

Is it the same machine or a different one?
If its a different one I don't trust that its set up the same way ;) Probably user tweaked something..

I have 2 machines.

  • One uses Windows, Ubuntu with LXQt (virtualbox) and Ubuntu with unity (virtualbox),
  • the other uses Ubuntu with LXQt.

And crashing only happens on LXQt.

j16180339887 commented Oct 29, 2016

Probably user tweaked something

I am a Windowser, not a Linuxer,
I don't think that I have the ability to tweak something.

Member

tsujan commented Oct 29, 2016

@j16180339887
In that case, don't bother yourself with coredumpctl! There's something wrong in your LXQt machine.

j16180339887 commented Oct 29, 2016

VLC crashes on both of my machines,
the one on the virtualbox and the other machine.

Member

tsujan commented Oct 29, 2016

By "LXQt machine" I meant your LXQt installation. Somehow, Qt4 support isn't complete in it.

Member

pmattern commented Oct 29, 2016

Just in case you're interested, providing coredumps isn't rocket science:

  • On Debian and Derivates it comes in a package on its own you have to install, apt-get install systemd-coredump.
  • Once it's installed you should make sure the corresonding sysctl parameter is set
    $ sysctl kernel.core_pattern
    kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %e
    is what the output should roughly look like. The important part is pipe and following path |/usr/lib/[...].
  • Running coredumpctl list will give you a list of crashes where the second row after the lengthy date represents the PIDs of the processes which crashed like 2970 in this line
    Mi 2016-10-26 14:45:24 CEST 2970 1002 100 11 /usr/bin/qpdfview.
  • Next you can hand the core dump to gdb by running cordumpctl gdb 2970.
  • The output will first comprise the stack traces, next you'll find yourself in a dedicated shell. Running bt will then print the backtrace and quit will bring you back to the regular shell.

That's all.

$ coredumpctl list
Sun 2016-10-30 10:50:48 CST    2762  1000  1000  11 * /usr/bin/qbittorrent
$ cordumpctl gdb 2762
zsh: command not found: cordumpctl
$ coredumpctl gdb 2762
...
...
Core was generated by `qbittorrent'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000000000000000 in ?? ()
[Current thread is 1 (Thread 0x7ff0af86f900 (LWP 2762))]
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007ff0aea2de7e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#2  0x00007ff0aea2da81 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#3  0x00007ff0aec1ccf5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#4  0x00007ff0aec1cdd2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5  0x00005574c66c4487 in MainWindow::createTrayIcon() ()
#6  0x00005574c66c4ac8 in MainWindow::loadPreferences(bool) ()
#7  0x00005574c66c7848 in MainWindow::MainWindow(QWidget*) ()
#8  0x00005574c65806d0 in Application::exec(QStringList const&) ()
#9  0x00005574c65722a0 in main ()
(gdb) Quit
Member

tsujan commented Oct 30, 2016

This crash seems to be about the tray icon. Had you enabled VLC's tray icon too?

And, unless you use Ubuntu trusty, qbittorrent is based on Qt5 -- its description in Ubuntu >= xenial is wrong.

j16180339887 commented Oct 30, 2016

Had you enabled VLC's tray icon too?

How can I tell if VLC crashes on startup

unless you use Ubuntu trusty, qbittorrent is based on Qt5

If I install Qt5 softwares (Ex: virtualbox wireshark), they work fine.

j16180339887 commented Nov 1, 2016

The workaround is removing System tray and Status Notifier Plugin from the Configure Panel.

Configure Panel

Thanks to @tsujan .

Member

tsujan commented Nov 1, 2016

System tray or Status Notifier shouldn't cause such a problem. Have you installed the package sni-qt? It's needed for Status Notifier to show older Qt4 tray icons.

BTW, you wouldn't need System tray with Status Notifier.

j16180339887 commented Nov 1, 2016

Have you installed the package sni-qt?

I did, still not working.

you wouldn't need System tray with Status Notifier.

System tray shows my input method and Status Notifier shows network-manager-gnome,
I think I need both of them.

Member

pmattern commented Nov 1, 2016

If interested you may find some information about the difference between the two here.

If interested you may find some information about the difference between the two here.

wow, I just removed Status Notifier, keep System tray, reboot, and everything works great again.
I mean vlc, qbittorrent, my input method and network-manager-gnome, they are all good.
Screenshot
And a trayicon called LXQt power management shows up, I didn't know that before.

Conclusion

Just remove Status Notifier from the Configure Panel, that's it.
You don't have to install, reinstall or remove any package.

Member

tsujan commented Nov 1, 2016

@j16180339887

Your conclusion is wrong. And you didn't answer my question about sni-qt.

j16180339887 commented Nov 1, 2016

I said I did, still not working. :)

Ok, I just edited my answer there.

My conclusion is for those who struggled with this,
not for everyone though.

Member

tsujan commented Nov 1, 2016

I said I did, still not working

Sorry! I didn't see that.

In short, under Unity, all necessary packages are installed for showing all kinds of tray icon. The same packages are needed by Status Notifier to show Qt4 and gtk tray icons. System tray uses "the old" method (and will be removed later but not soon); so Qt4 apps work with it without any need to install "sni" and related packages.

This may be another example of wrong Debian/Ubuntu dependecies.

Baltasarq commented Nov 30, 2016

Same problem here, running LXQt 16.10 (installed Lubuntu 16.10 ISO, and then sudo apt install lxqt).

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.10
Release:        16.10
Codename:       yakkety

$ uname -a
Linux PC-Baltasar 4.8.0-27-generic #29-Ubuntu SMP Thu Oct 20 21:03:13 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

I've read all the comments. Removing "status notifier" from the lxqt-panel solves the issue.
No other fix worked. Specifically installing the package sni-qt did not make a difference.
I can live without status notifier, it seems I only lost the update notifier (which was annoying anyway), so...

Member

tsujan commented Nov 30, 2016

@Baltasarq
Is it only VLC or does it happen with other Qt4 apps with systray icon too (I don't know of any though)?

Apparently it only happens with VLC. I've tried with qmpdclient, which is based on qt4:
https://apps.ubuntu.com/cat/applications/raring/qmpdclient/

And it works, even with status notifier in the panel. I cannot guarantee that, anyway.

Member

tsujan commented Nov 30, 2016

If this isn't about a missing package, it should be an Ubuntu problem. Under Manjaro, VLC's tray icon works well with Status Notifier.

Try to uncheck this.

image

Member

palinek commented Dec 1, 2016

Hm... why are you talking here about Qt4? Based on this the vlc in ubuntu16.10 is a Qt5 app.

If the problem is a tray icon (the SNI one), the problem can be in lxqt-qtplugin. In 16.10 there is the 0.10 version of all LXQt components. I'm not sure, but we've solved one problem with SNI tray icons in lxde/lxqt-qtplugin@411f696 which is in 0.11 release.

@j16180339887 it would be more helpful if you can install the debug symbols packages for vlc and lxq-qtplugin and post the backtrace of crash.

Member

tsujan commented Dec 1, 2016

Based on this the vlc in ubuntu16.10 is a Qt5 app.

I think that can't be correct.

Member

palinek commented Dec 1, 2016

Based on this the vlc in ubuntu16.10 is a Qt5 app.

I think that can't be correct.

Why so?

Member

tsujan commented Dec 1, 2016

Why so?

I read somewhere that VLC-3 will have a Qt5 GUI (I don't remember the address). Moreover, VLC is based on Qt4 on Arch and Arch often has the latest programs.

Member

palinek commented Dec 1, 2016

Moreover, VLC is based on Qt4 on Arch and Arch often has the latest programs.

Sorry to disapoint your belief in arch, but in debian it is also compiled with Qt5 -> https://packages.debian.org/sid/vlc

Member

palinek commented Dec 1, 2016

...this is the history of qt gui in of the 2.2.0 release (Jun 14, 2014) https://github.com/videolan/vlc/commits/ddba52206f69bb123bea8ed4d4ada07b3cb1223c/modules/gui/qt4

From the log messages with qt5 mentioning I deduce, it is able to be compiled with qt5 :)

Member

tsujan commented Dec 1, 2016

Sorry to disapoint your belief in arch...

I just told what I observed.

I'm really suspicious about compiling VLC<3 against Qt5. Search google with "VLC Qt5"! If VLC is really compiled against Qt5 on Debian/Ubuntu, that could be the source of the problem. I don't have motivation to track the issue.

Member

tsujan commented Dec 1, 2016

Out of curiosity about VLC-3, I compiled it against Qt-5.7.0 (https://aur.archlinux.org/packages/vlc-git/) and encountered no problem with its tray icon under LXQt -- another confirmation that this issue is related to Ubuntu. (And Debian? Does any Debian user see it?)

it would be more helpful if you can install the debug symbols packages for vlc and lxqt-qtplugin and post the backtrace of crash.

Could you make it clear? What should I install?

Owner

agaida commented Dec 1, 2016

apt install vlc-dbg (or in case vlc-dbgsym)

The only package matches vlc-d* is vlc-data.
vlc-dbg has been removed from newer version of Ubuntu

Member

palinek commented Dec 2, 2016

The google search revealed: https://wiki.ubuntu.com/Debug%20Symbol%20Packages -> and I manually checked the presence of lxqt-qtplugin-dbgsym here & here

j16180339887 commented Dec 2, 2016

The google search revealed: https://wiki.ubuntu.com/Debug%20Symbol%20Packages -> and I manually checked the presence of lxqt-qtplugin-dbgsym here & here

Note that I did NOT install vlc and qbittorrent on this machine before, then I

$ echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-security main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-proposed main restricted universe multiverse" | \
sudo tee -a /etc/apt/sources.list.d/ddebs.list

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01 C8CAB6595FDFF622

$ sudo apt-get update

$ sudo apt-get install vlc-dbgsym qbittorrent-dbgsym lxqt-qtplugin-dbgsym
$ coredumpctl list
Fri 2016-12-02 18:21:11 CST    2965  1000  1000  11 present  /usr/bin/vlc

$ coredumpctl gdb 2965
...
...
Core was generated by `vlc'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000000000000000 in ?? ()
[Current thread is 1 (Thread 0x7f2898141700 (LWP 2969))]
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007f289aa28e7e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#2  0x00007f289aa28a81 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#3  0x00007f289ac17cf5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#4  0x00007f289ac17d83 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5  0x00007f289ac17dd2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x00007f289ae501e7 in VLCMenuBar::updateSystrayMenu (mi=0x7f28840d6120,
    p_intf=<optimized out>, b_force_visible=<optimized out>) at menus.cpp:1171
#7  0x00007f289ae5a439 in MainInterface::createSystray (this=this@entry=0x7f28840d6120)
    at main_interface.cpp:1204
#8  0x00007f289ae610c6 in MainInterface::initSystray (this=0x7f28840d6120)
    at main_interface.cpp:539
#9  MainInterface::MainInterface (this=0x7f28840d6120, _p_intf=<optimized out>)
    at main_interface.cpp:183
#10 0x00007f289ae4a45d in Thread (obj=0x56284ee98728) at qt4.cpp:532
#11 0x00007f28a553070a in start_thread (arg=0x7f2898141700) at pthread_create.c:333
#12 0x00007f28a50660af in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
(gdb) quit
$ coredumpctl list
Fri 2016-12-02 18:47:59 CST    4844  1000  1000  11 present  /usr/bin/qbittorrent

$ coredumpctl gdb 4844
...
...
Core was generated by `qbittorrent'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000000000000000 in ?? ()
[Current thread is 1 (Thread 0x7f9e1dab2900 (LWP 4844))]
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007f9e1cc69e7e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#2  0x00007f9e1cc69a81 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#3  0x00007f9e1ce58cf5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#4  0x00007f9e1ce58dd2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5  0x0000562722c20c37 in MainWindow::createTrayIcon (this=this@entry=0x5627243caf20)
    at ../../src/gui/mainwindow.cpp:1442
#6  0x0000562722c21278 in MainWindow::loadPreferences (this=this@entry=0x5627243caf20,
    configureSession=configureSession@entry=false) at ../../src/gui/mainwindow.cpp:1188
#7  0x0000562722c23ff8 in MainWindow::MainWindow (this=0x5627243caf20, parent=<optimized out>)
    at ../../src/gui/mainwindow.cpp:276
#8  0x0000562722add890 in Application::exec (this=0x56272427cf90, params=...)
    at ../../src/app/application.cpp:432
#9  0x0000562722acf460 in main (argc=<optimized out>, argv=<optimized out>)
    at ../../src/app/main.cpp:269
(gdb) quit

I have verified that qbittorrent does crash when the status-notifier is in the panel. Removing status-notifier from the panel solves the issue.
Also, it's clear that qbittorrent is based on Qt 5.

$ ldd /usr/bin/qbittorrent
        linux-vdso.so.1 =>  (0x00007ffd1dfc9000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fd8b095e000)
        libtorrent-rasterbar.so.9 => /usr/lib/libtorrent-rasterbar.so.9 (0x00007fd8b0382000)
        libboost_system.so.1.61.0 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.61.0 (0x00007fd8b017e000)
        libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007fd8afaf6000)
        libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007fd8af56a000)
        libQt5DBus.so.5 => /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 (0x00007fd8af4dd000)
        libQt5Xml.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5 (0x00007fd8af4a1000)
        libQt5Network.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Network.so.5 (0x00007fd8af32b000)
        libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007fd8aee53000)
        ...
$ coredumpctl
TIME                            PID   UID   GID SIG PRESENT EXE
vie 2016-12-02 12:56:54 CET    4223  1000  1000  11 * /usr/bin/qbittorrent
$ coredumpctl gdb 4223
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007fd6e2980e7e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#2  0x00007fd6e2980a81 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#3  0x00007fd6e2b6fcf5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#4  0x00007fd6e2b6fdd2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5  0x0000560116432487 in MainWindow::createTrayIcon (this=this@entry=0x560117bcd1a0)
    at ../../src/gui/mainwindow.cpp:1442
#6  0x0000560116432ac8 in MainWindow::loadPreferences (this=this@entry=0x560117bcd1a0, 
    configureSession=configureSession@entry=false) at ../../src/gui/mainwindow.cpp:1188
#7  0x0000560116435848 in MainWindow::MainWindow (this=0x560117bcd1a0, parent=<optimized out>)
    at ../../src/gui/mainwindow.cpp:276
#8  0x00005601162ee6d0 in Application::exec (this=0x560117af9bd0, params=...)
    at ../../src/app/application.cpp:437
#9  0x00005601162e02a0 in main (argc=<optimized out>, argv=<optimized out>) at ../../src/app/main.cpp:269

The line that causes the error is:
m_systrayIcon->setContextMenu(trayIconMenu());

which can be found in version 3.36, maindow.cpp, MainWindow::createTrayIcon():
https://github.com/qbittorrent/qBittorrent/blob/release-3.3.6/src/gui/mainwindow.cpp#L1442

Member

yan12125 commented Dec 2, 2016

I guess a backtrace with Qt5 symbols would be better. qbittorrent 3.3.7 + Qt 5.7.0 runs fine with LXQt's status notifier plugin on Arch Linux, so maybe it's a Ubuntu/Debian-only issue.

Okay, here it is:

(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007fd6e2980e7e in copyActionToPlatformItem (action=action@entry=0x560117bc4860, 
    item=item@entry=0x560117f1b3d0, itemsMenu=0x560117f017d0) at widgets/qmenu.cpp:3228
#2  0x00007fd6e2980a81 in QMenuPrivate::syncPlatformMenu (this=0x560117f01e80) at widgets/qmenu.cpp:202
#3  0x00007fd6e2980b97 in QMenu::setPlatformMenu (this=this@entry=0x560117ee9ae0, 
    platformMenu=<optimized out>) at widgets/qmenu.cpp:3425
#4  0x00007fd6e2b6fcf5 in QSystemTrayIconPrivate::addPlatformMenu (this=0x560117efb550, menu=0x560117ee9ae0)
    at util/qsystemtrayicon.cpp:761
#5  0x00007fd6e2b6fdd2 in QSystemTrayIconPrivate::updateMenu_sys_qpa (this=0x560117efb550)
    at util/qsystemtrayicon.cpp:710
#6  0x0000560116432487 in MainWindow::createTrayIcon() ()
#7  0x0000560116432ac8 in MainWindow::loadPreferences(bool) ()
#8  0x0000560116435848 in MainWindow::MainWindow(QWidget*) ()
#9  0x00005601162ee6d0 in Application::exec(QStringList const&) ()
#10 0x00005601162e02a0 in main ()
Member

yan12125 commented Dec 2, 2016

Looks related: https://mail-archive.com/debian-bugs-rc@lists.debian.org/msg441115.html. That bug report says lxqt-qtplugin should be rebuilt to catch up Qt 5.7 changes. @agaida should know more

so maybe it's a Ubuntu/Debian-only issue

It's possible.

LXQt 0.11 with Qt5.7.1 on Debian works fine.
LXQt 0.10 with Qt5.6.1 on Ubuntu crashes.

I don't know how to get LXQt 0.11 with Qt5.7 on Ubuntu without compiling myself.

Member

yan12125 commented Dec 3, 2016

IIRC Ubuntu pulls Debian packages from time to time. You may want to ask Ubuntu to update their packages.

You can use the LXQt Team PPA to update to a version of LXQt that doesn't have the behavior:

https://launchpad.net/~lxqt/+archive/ubuntu/ppa

You'll have to apt autoremove when you're done installing the updates and then log out and back in to restart your session. You'll also get a message about importing an old config as well, which is expected. As a bonus, the new version also looks better (to me). I just did the update, and vlc works fine with both Status Notifier and System Tray running. I haven't tested qtorrent, though.

@agaida agaida added the downstream label Jan 14, 2017

Owner

agaida commented Jan 16, 2017

@yan12125 - from time to time is 2-3 days right now as they are not frozen yet. But this is only for their upcoming release repos (zesty and zesty proposed updates). Released things remain untouched.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment