test_bitcoin-qt fails on Linux Mint 20
test_bitcoin-qt
(part of ninja check
) consistently crashes on my computer since I installed Linux Mint 20 Cinnamon (based on Ubuntu 20.04 LTS).
Debug backtrace shows that the segmentation fault occurs when creating the system tray icon:
build$ gdb src/qt/test/test_bitcoin-qt
GNU gdb (Ubuntu 9.1-0ubuntu1) 9.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-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 src/qt/test/test_bitcoin-qt...
(gdb) run
Starting program: build/src/qt/test/test_bitcoin-qt
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
qt5ct: using qt5ct plugin
[New Thread 0x7ffff133d700 (LWP 26322)]
[New Thread 0x7ffff0b3c700 (LWP 26323)]
[New Thread 0x7fffebfff700 (LWP 26324)]
********* Start testing of AppTests *********
Config: Using QtTest library 5.12.8, Qt 5.12.8 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 9.3.0)
PASS : AppTests::initTestCase()
QWARN : AppTests::appTests() Backing up GUI settings to "/tmp/test_bitcoin-qt_1596743509_49817/regtest/guisettings.ini.bak"
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
QWARN : AppTests::appTests() QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
[New Thread 0x7fffeb7fe700 (LWP 26325)]
QDEBUG : AppTests::appTests() qt5ct: D-Bus global menu: no
QDEBUG : AppTests::appTests() qt5ct: D-Bus system tray: yes
Thread 1 "test_bitcoin-qt" received signal SIGSEGV, Segmentation fault.
0x00007ffff2811ed8 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqt5ct.so
(gdb) backtrace
#0 0x00007ffff2811ed8 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqt5ct.so
#1 0x00007ffff281221a in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqt5ct.so
#2 0x00005555556f3976 in BitcoinGUI::createTrayIcon (this=0x55555617daa0) at ../src/./qt/networkstyle.h:22
#3 0x00005555556f6b60 in BitcoinGUI::BitcoinGUI (this=0x55555617daa0, node=..., configIn=<optimized out>, _platformStyle=0x5555563164b0, networkStyle=<optimized out>, parent=<optimized out>)
at ../src/qt/bitcoingui.cpp:124
#4 0x00005555556e5d8d in BitcoinApplication::createWindow (this=0x7fffffffdbf0, config=config@entry=0x555556067900 <gConfig>, networkStyle=networkStyle@entry=0x555556314b20)
at ../src/qt/bitcoin.cpp:246
#5 0x000055555569532a in AppTests::appTests (this=0x7fffffffdba0) at ../src/qt/test/apptests.cpp:98
#6 0x00007ffff640e0cb in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7 0x00007ffff7f71fc3 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Test.so.5
#8 0x00007ffff7f729d3 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Test.so.5
#9 0x00007ffff7f72fb1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Test.so.5
#10 0x00007ffff7f7339b in QTest::qRun() () from /usr/lib/x86_64-linux-gnu/libQt5Test.so.5
#11 0x00007ffff7f735c0 in QTest::qExec(QObject*, int, char**) () from /usr/lib/x86_64-linux-gnu/libQt5Test.so.5
#12 0x000055555567d6c4 in main (argc=<optimized out>, argv=0x7fffffffdfc8) at ../src/qt/test/test_main.cpp:88
(gdb) quit
A debugging session is active.
Inferior 1 [process 26318] will be killed.
Quit anyway? (y or n) y
I have no idea why this problem occurs, since bitcoin-qt
runs fine, including the system tray icon.
This is not a recent regression: I also get the crash with version 0.21.0.