Project

General

Profile

Bug #1166

Crash when launching in QT Winamp Classic interface (qtpbfimageformat related)

Added by Eric Lawler about 1 month ago. Updated about 1 month ago.

Status:
Closed
Priority:
Major
Assignee:
-
Category:
plugins/skins-qt
Target version:
Start date:
April 09, 2022
Due date:
% Done:

100%

Estimated time:
Affects version:

Description

Hey, John.

After a recent-ish upgrade to Fedora 34, Audacious 4.1-2.fc34.x86_64 now crashes when configured to use the Winamp Classic UI.

QFontDatabase: Must construct a QGuiApplication before accessing QFontDatabase
Aborted (core dumped)

If I toggle off the Winamp Classic Interface config setting in plugin-registry, it loads fine. Then enabling the Classic skin at runtime works fine--the app is happy to run for days.

I don't know which library versions would be helpful.

[eric@kohlenstoff audacious]$ rpm -qa | grep qt | sort
dbusmenu-qt-0.9.3-0.26.20160218.fc34.x86_64
dbusmenu-qt5-0.9.3-0.26.20160218.fc34.x86_64
gstreamer1-plugins-good-qt-1.19.1-2.1.18.4.fc34.x86_64
polkit-qt5-1-0.113.0-6.fc34.x86_64
poppler-qt5-21.01.0-7.fc34.x86_64
qpdfview-qt5-0.4.18-6.fc34.x86_64
qt-4.8.7-61.fc34.x86_64
qt5-qtbase-5.15.2-22.fc34.x86_64
qt5-qtbase-common-5.15.2-22.fc34.noarch
qt5-qtbase-devel-5.15.2-22.fc34.x86_64
qt5-qtbase-gui-5.15.2-22.fc34.x86_64
qt5-qtdeclarative-5.15.2-7.fc34.x86_64
qt5-qtdeclarative-devel-5.15.2-7.fc34.x86_64
qt5-qtlocation-5.15.2-5.fc34.x86_64
qt5-qtmultimedia-5.15.2-3.fc34.x86_64
qt5-qtpbfimageformat-2.3-3.fc34.x86_64
qt5-qtscript-5.15.2-3.fc34.x86_64
qt5-qtsensors-5.15.2-4.fc34.x86_64
qt5-qtspeech-5.15.2-3.fc34.x86_64
qt5-qtspeech-speechd-5.15.2-3.fc34.x86_64
qt5-qtsvg-5.15.2-4.fc34.x86_64
qt5-qtwayland-5.15.2-14.fc34.x86_64
qt5-qtwebchannel-5.15.2-3.fc34.x86_64
qt5-qtwebkit-5.212.0-0.59.alpha4.fc34.x86_64
qt5-qtwebkit-devel-5.212.0-0.59.alpha4.fc34.x86_64
qt5-qtx11extras-5.15.2-3.fc34.x86_64
qt5-rpm-macros-5.15.2-2.fc34.noarch
qt5-srpm-macros-5.15.2-2.fc34.noarch
qt-common-4.8.7-61.fc34.noarch
qt-settings-34.7-2.fc34.noarch
qt-x11-4.8.7-61.fc34.x86_64
sni-qt-0.2.7-0.8.20170217.fc34.x86_64

Thanks again for all the work you put into this program--it's still the most intuitive and powerful media player for a long-time Winamp user across all platforms.

Screenshot_2022-04-09_10-14-59.png (58.2 KB) Screenshot_2022-04-09_10-14-59.png Eric Lawler, April 09, 2022 16:15

History

#1 Updated by John Lindgren about 1 month ago

Interesting. I grep'ped for QFontDatabase in our code, and we don't use it directly.

Can you provide a debugger backtrace of the crash? Also, what version of Qt are you using?

Edit: saw that you already provided Qt versions, thanks.

#2 Updated by John Lindgren about 1 month ago

Some others were having a similar issue in Fedora 33 apparently:
https://redmine.audacious-media-player.org/boards/1/topics/2748

Based on the workaround in that thread, can you try uninstalling qt5-qtpbfimageformat (it's not required for Audacious) and see if that fixes the issue?

#3 Updated by Eric Lawler about 1 month ago

John Lindgren wrote:

Some others were having a similar issue in Fedora 33 apparently:
https://redmine.audacious-media-player.org/boards/1/topics/2748

Based on the workaround in that thread, can you try uninstalling qt5-qtpbfimageformat (it's not required for Audacious) and see if that fixes the issue?

Ah! I did a quick DDG for that error message and didn't see anything salient; I didn't even know Audacious had forums. Nothing else on my system required qtpbfimageformat ("Qt image plugin for displaying Mapbox vector tiles"), so it was no problem to remove. That fixes the crash.

I've never worked with Mapbox directly, I have no idea what pulled in that library. Suspicious.

Thanks for the quick response, enjoy your weekend!

#4 Updated by John Lindgren about 1 month ago

Okay I was able to reproduce here on Arch Linux after installing qt5-pbfimageplugin from AUR.

The backtrace here is:

#0  0x00007ffff772134c in __pthread_kill_implementation () at /usr/lib/libc.so.6
#1  0x00007ffff76d44b8 in raise () at /usr/lib/libc.so.6
#2  0x00007ffff76be534 in abort () at /usr/lib/libc.so.6
#3  0x00007ffff7208ee4 in qt_assert(char const*, char const*, int) () at /usr/lib/libQt5Core.so.5
#4  0x00007fffe1864884 in  () at /usr/lib/libQt5Gui.so.5
#5  0x00007fffcc6d9767 in fonts() () at src/font.cpp:62
#6  0x00007fffcc6dc6ad in matchFamily (family=...) at src/font.cpp:101
#7  Font::fromJsonArray(QJsonArray const&) (json=...) at src/font.cpp:123
#8  0x00007fffcc6d3402 in Style::Layer::Layout::Layout(QJsonObject const&)
    (this=0x7fffffffd160, json=..., this=<optimized out>, json=<optimized out>) at src/style.cpp:369
#9  0x00007fffcc6d5823 in Style::Layer::Layer(QJsonObject const&)
    (this=0x7fffffffd560, json=..., this=<optimized out>, json=<optimized out>) at src/style.cpp:500
#10 0x00007fffcc6d67fc in Style::load(QString const&) (this=<optimized out>, fileName=<optimized out>)
    at src/style.cpp:598
#11 0x00007fffcc6d80e4 in PBFPlugin::PBFPlugin() (this=0x5555575a8810, this=<optimized out>) at src/pbfplugin.cpp:16
#12 0x00007fffcc6e7ff7 in qt_plugin_instance() () at /usr/src/debug/QtPBFImagePlugin-2.3/moc_pbfplugin.cpp:124
#13 0x00007ffff73f08e0 in  () at /usr/lib/libQt5Core.so.5
#14 0x00007ffff73ea635 in QFactoryLoader::instance(int) const () at /usr/lib/libQt5Core.so.5
#15 0x00007fffe191776d in  () at /usr/lib/libQt5Gui.so.5
#16 0x00007fffe1918f44 in  () at /usr/lib/libQt5Gui.so.5
#17 0x00007fffe191a178 in QImageReader::read(QImage*) () at /usr/lib/libQt5Gui.so.5
#18 0x00007fffe191b30b in QImageReader::read() () at /usr/lib/libQt5Gui.so.5
#19 0x00007fffe18ff47e in QImage::load(QString const&, char const*) () at /usr/lib/libQt5Gui.so.5
#20 0x00007fffcca6b5c0 in skin_load_pixmap_id (path=0x5555555b1ce0 "/usr/share/audacious/Skins/Default", id=SKIN_MAIN)
    at skin.cc:108
#21 skin_load_pixmaps (path=0x5555555b1ce0 "/usr/share/audacious/Skins/Default") at skin.cc:212
#22 skin_load_data (path=0x5555555b1ce0 "/usr/share/audacious/Skins/Default") at skin.cc:244
#23 skin_load(char const*) (path=0x5555555b1ce0 "/usr/share/audacious/Skins/Default") at skin.cc:270
#24 0x00007fffcca68653 in load_initial_skin () at plugin.cc:120
#25 QtSkins::init() (this=<optimized out>) at plugin.cc:169
#26 0x00007ffff7f55625 in interface_load (plugin=0x5555555be4a0) at interface.cc:72
#27 iface_plugin_set_current(PluginHandle*) (plugin=0x5555555be4a0) at interface.cc:142
#28 0x00007ffff7f6767b in start_plugin(PluginType, PluginHandle*, bool)
    (type=type@entry=PluginType::Iface, p=p@entry=0x5555555be4a0, secondary=secondary@entry=false)
    at ../libaudcore/templates.h:224
#29 0x00007ffff7f67a36 in start_required (type=PluginType::Iface) at plugin-init.cc:136
#30 start_plugins(PluginType) (type=type@entry=PluginType::Iface) at plugin-init.cc:169
#31 0x00007ffff7f67c86 in start_plugins_two() () at plugin-init.cc:210
#32 0x00007ffff7f6d0b2 in aud_run() () at runtime.cc:342
#33 0x0000555555561c5d in main(int, char**) (argc=<optimized out>, argv=0x7fffffffe8e8) at main.cc:420

Working on a fix.

#5 Updated by John Lindgren about 1 month ago

  • % Done changed from 0 to 100
  • Target version set to 4.2
  • Status changed from New to Closed
  • Category set to plugins/skins-qt
  • Subject changed from Crash when launching in QT Winamp Classic interface to Crash when launching in QT Winamp Classic interface (qtpbfimageformat related)

Simple enough fix:
https://github.com/audacious-media-player/audacious-plugins/commit/7f9f51b8c43e5ec844e034c8b9bec2d047f6a616

Thanks for the report, and enjoy your weekend as well!

Also available in: Atom PDF