View previous topic :: View next topic |
Author |
Message |
sam_ Developer
Joined: 14 Aug 2020 Posts: 2047
|
Posted: Sun Sep 22, 2024 2:40 am Post subject: |
|
|
Thanks, this is promising.
tst_qcolordialog might be a good test although it's not the simplest. tst_qsettings might be a good one, or tst_qdatastream.
Could you run them manually under gdb and get a backtrace?
e.g.
cd /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/tests/auto/corelib/io/qsettings
gdb --args ./tst_qsettings
r
bt
We want to pick the simplest test which also invokes that optimised memcpy path. |
|
Back to top |
|
|
localtoast n00b
Joined: 13 Jul 2024 Posts: 28
|
Posted: Sun Sep 22, 2024 6:42 am Post subject: |
|
|
The two you suggested work out as follows:
Code: | # gdb --args ./tst_qcolordialog
GNU gdb (Gentoo 14.2 vanilla) 14.2
Copyright (C) 2023 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://bugs.gentoo.org/>.
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 ./tst_qcolordialog...
(No debugging symbols found in ./tst_qcolordialog)
(gdb) run
Starting program: /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Detected locale "en_US.iso88591" with character encoding "ISO-8859-1", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "en_US.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
[New Thread 0x7ffff31ff6c0 (LWP 11910)]
[Detaching after fork from child process 11911]
[New Thread 0x7ffff29fe6c0 (LWP 11922)]
********* Start testing of tst_QColorDialog *********
Config: Using QtTest library 6.7.2, Qt 6.7.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 13.3.1 20240614), gentoo 2.15
PASS : tst_QColorDialog::initTestCase()
SKIP : tst_QColorDialog::defaultOkButton() This test crashes sometimes. Although rarely, but it happens. See QTBUG-50842.
Loc: [/var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp(109)]
SKIP : tst_QColorDialog::native_activeModalWidget() This test crashes sometimes. Although rarely, but it happens. See QTBUG-50842.
Loc: [/var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp(69)]
PASS : tst_QColorDialog::task247349_alpha()
PASS : tst_QColorDialog::QTBUG_43548_initialColor()
Thread 1 "tst_qcolordialo" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x00007ffff72509ba in fillRect_normalized(QRect const&, QSpanData*, QRasterPaintEnginePrivate*) [clone .isra.0]
() from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Gui.so.6
#2 0x00007ffff7276e7c in QPainter::fillRect(QRect const&, QBrush const&) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Gui.so.6
#3 0x00007ffff7c68fc2 in fillRegion(QPainter*, QRegion const&, QBrush const&) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Widgets.so.6
#4 0x00007ffff7cc2ab7 in QWidgetPrivate::paintBackground(QPainter*, QRegion const&, QFlags<QWidgetPrivate::DrawWidgetFlag>) const ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Widgets.so.6
#5 0x00007ffff7cdaa3e in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Widgets.so.6
#6 0x00007ffff7cdca71 in QWidgetRepaintManager::paintAndFlush() ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Widgets.so.6
#7 0x00007ffff7cdd37a in QWidgetRepaintManager::sync(QWidget*, QRegion const&) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Widgets.so.6
#8 0x00007ffff7d067f8 in QWidgetWindow::event(QEvent*) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Widgets.so.6
#9 0x00007ffff7cf5b15 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Widgets.so.6
#10 0x00007ffff6cddcf0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#11 0x00007ffff716f8b3 in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*)
() from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Gui.so.6
#12 0x00007ffff71c4ff3 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Gui.so.6
#13 0x00007ffff567547e in ?? () from /usr/lib64/qt6/plugins/platforms/../../../libQt6XcbQpa.so.6
#14 0x00007ffff6211382 in ?? () from /usr/lib64/libglib-2.0.so.0
#15 0x00007ffff6214407 in ?? () from /usr/lib64/libglib-2.0.so.0
#16 0x00007ffff62149c8 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#17 0x00007ffff6ac1120 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#18 0x00007ffff7c751f4 in QTest::qWaitForWindowExposed(QWidget*, int) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Widgets.so.6
#19 0x000055555555cb8f in tst_QColorDialog::hexColor() ()
#20 0x00007ffff6d066e9 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#21 0x00007ffff6d0711e in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#22 0x00007ffff7f9621f in QTest::TestMethods::invokeTestOnData(int) const ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#23 0x00007ffff7f96f35 in QTest::TestMethods::invokeTest(int, QLatin1String, std::optional<QTest::WatchDog>&) const
() from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#24 0x00007ffff7f9768f in QTest::TestMethods::invokeTests(QObject*) const ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#25 0x00007ffff7f9de98 in QTest::qRun() ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#26 0x00007ffff7f9e48f in QTest::qExec(QObject*, int, char**) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#27 0x000055555555b79b in main ()
(gdb)
|
qdatastream gave me too much output to copy from the shell, so this is what gdb logging output looked like:
Code: | Starting program: /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/tests/auto/corelib/serialization/qdatastream/tst_qdatastream
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
[New Thread 0x7ffff39116c0 (LWP 12348)]
[Detaching after fork from child process 12349]
[New Thread 0x7ffff31106c0 (LWP 12350)]
Thread 1 "tst_qdatastream" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
#0 0x0000000000000000 in ?? ()
#1 0x00005555555a1f2c in tst_QDataStream::transaction_data() ()
#2 0x00007ffff75066e9 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#3 0x00007ffff750711e in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#4 0x00007ffff7f72e64 in QTest::invokeTestMethodIfValid(QMetaMethod, QObject*) () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#5 0x00007ffff7f96d22 in QTest::TestMethods::invokeTest(int, QLatin1String, std::optional<QTest::WatchDog>&) const () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#6 0x00007ffff7f9768f in QTest::TestMethods::invokeTests(QObject*) const () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#7 0x00007ffff7f9de98 in QTest::qRun() () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#8 0x00007ffff7f9e48f in QTest::qExec(QObject*, int, char**) () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#9 0x000055555556b4b2 in main ()
|
|
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 2047
|
Posted: Sun Sep 22, 2024 6:54 am Post subject: |
|
|
That first one looks like a perfect fit for the crash we were seeing.
If Ionen has no further input, could you report that upstream to Qt please? |
|
Back to top |
|
|
localtoast n00b
Joined: 13 Jul 2024 Posts: 28
|
Posted: Sun Sep 22, 2024 7:04 am Post subject: |
|
|
sam_ wrote: | That first one looks like a perfect fit for the crash we were seeing.
If Ionen has no further input, could you report that upstream to Qt please? |
Sure. Any others you want to see while the tests are still on my hard disk? |
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 2047
|
Posted: Sun Sep 22, 2024 7:13 am Post subject: |
|
|
How about tst_qpixmap, tst_qimage, tst_qicon? I couldn't see any others which are simple enough to be useful (at least not ones which are meaningfully different). |
|
Back to top |
|
|
localtoast n00b
Joined: 13 Jul 2024 Posts: 28
|
Posted: Sun Sep 22, 2024 7:24 am Post subject: |
|
|
Here you go. Nothing special to note about any of the three runs.
Code: | # gdb ./tst_qpixmap
GNU gdb (Gentoo 14.2 vanilla) 14.2
Copyright (C) 2023 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://bugs.gentoo.org/>.
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 ./tst_qpixmap...
(No debugging symbols found in ./tst_qpixmap)
(gdb) set logging on
Warning: 'set logging on', an alias for the command 'set logging enabled', is deprecated.
Use 'set logging enabled on'.
Copying output to gdb.txt.
Copying debug output to gdb.txt.
(gdb) run
Starting program: /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/tests/auto/gui/image/qpixmap/tst_qpixmap
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Detected locale "en_US.iso88591" with character encoding "ISO-8859-1", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "en_US.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
[New Thread 0x7ffff31ff6c0 (LWP 17961)]
[Detaching after fork from child process 17962]
[New Thread 0x7ffff29fe6c0 (LWP 17963)]
********* Start testing of tst_QPixmap *********
Config: Using QtTest library 6.7.2, Qt 6.7.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 13.3.1 20240614), gentoo 2.15
PASS : tst_QPixmap::initTestCase()
Thread 1 "tst_qpixmap" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x000055555555e1e9 in tst_QPixmap::swap() ()
#2 0x00007ffff6d066e9 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#3 0x00007ffff6d0711e in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#4 0x00007ffff7f9621f in QTest::TestMethods::invokeTestOnData(int) const () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#5 0x00007ffff7f96f35 in QTest::TestMethods::invokeTest(int, QLatin1String, std::optional<QTest::WatchDog>&) const () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#6 0x00007ffff7f9768f in QTest::TestMethods::invokeTests(QObject*) const () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#7 0x00007ffff7f9de98 in QTest::qRun() () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#8 0x00007ffff7f9e48f in QTest::qExec(QObject*, int, char**) () from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#9 0x000055555555d971 in main ()
(gdb)
|
Code: | # gdb ./tst_qimage
GNU gdb (Gentoo 14.2 vanilla) 14.2
Copyright (C) 2023 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://bugs.gentoo.org/>.
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 ./tst_qimage...
(No debugging symbols found in ./tst_qimage)
(gdb) run
Starting program: /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/tests/auto/gui/image/qimage/tst_qimage
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Detected locale "en_US.iso88591" with character encoding "ISO-8859-1", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "en_US.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
********* Start testing of tst_QImage *********
Config: Using QtTest library 6.7.2, Qt 6.7.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 13.3.1 20240614), gentoo 2.15
PASS : tst_QImage::initTestCase()
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x00007ffff7917ed3 in QImage::fill(Qt::GlobalColor) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Gui.so.6
#2 0x000055555555ee99 in tst_QImage::swap() ()
#3 0x00007ffff75066e9 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#4 0x00007ffff750711e in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#5 0x00007ffff7f9621f in QTest::TestMethods::invokeTestOnData(int) const ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#6 0x00007ffff7f96f35 in QTest::TestMethods::invokeTest(int, QLatin1String, std::optional<QTest::WatchDog>&) const
() from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#7 0x00007ffff7f9768f in QTest::TestMethods::invokeTests(QObject*) const ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#8 0x00007ffff7f9de98 in QTest::qRun() ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#9 0x00007ffff7f9e48f in QTest::qExec(QObject*, int, char**) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#10 0x000055555555e99b in main ()
(gdb)
|
Code: | # gdb ./tst_qicon
GNU gdb (Gentoo 14.2 vanilla) 14.2
Copyright (C) 2023 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://bugs.gentoo.org/>.
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 ./tst_qicon...
(No debugging symbols found in ./tst_qicon)
(gdb) run
Starting program: /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/tests/auto/gui/image/qicon/tst_qicon
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Detected locale "en_US.iso88591" with character encoding "ISO-8859-1", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "en_US.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
[New Thread 0x7ffff31ff6c0 (LWP 18080)]
[Detaching after fork from child process 18081]
[New Thread 0x7ffff29fe6c0 (LWP 18082)]
********* Start testing of tst_QIcon *********
Config: Using QtTest library 6.7.2, Qt 6.7.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 13.3.1 20240614), gentoo 2.15
PASS : tst_QIcon::initTestCase()
PASS : tst_QIcon::actualSize(resource0)
PASS : tst_QIcon::actualSize(resource1)
PASS : tst_QIcon::actualSize(resource2)
PASS : tst_QIcon::actualSize(resource3)
PASS : tst_QIcon::actualSize(resource4)
PASS : tst_QIcon::actualSize(resource5)
PASS : tst_QIcon::actualSize(resource6)
PASS : tst_QIcon::actualSize(resource7)
PASS : tst_QIcon::actualSize(resource8)
PASS : tst_QIcon::actualSize(resource9)
PASS : tst_QIcon::actualSize(resource10)
PASS : tst_QIcon::actualSize(external0)
PASS : tst_QIcon::actualSize(external1)
PASS : tst_QIcon::actualSize(external2)
PASS : tst_QIcon::actualSize(external3)
PASS : tst_QIcon::actualSize(external4)
PASS : tst_QIcon::actualSize(external5)
PASS : tst_QIcon::actualSize(external6)
PASS : tst_QIcon::actualSize(external7)
PASS : tst_QIcon::actualSize(external8)
PASS : tst_QIcon::actualSize(external9)
PASS : tst_QIcon::actualSize(external10)
PASS : tst_QIcon::actualSize2(trivial1)
PASS : tst_QIcon::actualSize2(trivial2)
PASS : tst_QIcon::actualSize2(best1)
PASS : tst_QIcon::actualSize2(best2)
PASS : tst_QIcon::actualSize2(best3)
PASS : tst_QIcon::actualSize2(best4)
PASS : tst_QIcon::actualSize2(best5)
PASS : tst_QIcon::isNull()
PASS : tst_QIcon::isMask()
Thread 1 "tst_qicon" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x000055555555dbad in tst_QIcon::swap() ()
#2 0x00007ffff6d066e9 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#3 0x00007ffff6d0711e in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Core.so.6
#4 0x00007ffff7f9621f in QTest::TestMethods::invokeTestOnData(int) const ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#5 0x00007ffff7f96f35 in QTest::TestMethods::invokeTest(int, QLatin1String, std::optional<QTest::WatchDog>&) const
() from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#6 0x00007ffff7f9768f in QTest::TestMethods::invokeTests(QObject*) const ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#7 0x00007ffff7f9de98 in QTest::qRun() ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#8 0x00007ffff7f9e48f in QTest::qExec(QObject*, int, char**) ()
from /var/tmp/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build/lib64/libQt6Test.so.6
#9 0x000055555555ae2b in main ()
(gdb)
|
|
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 2047
|
Posted: Sun Sep 22, 2024 8:35 am Post subject: |
|
|
Curious as to why it goes wrong a bit earlier in the others but maybe something just gets inlined. If this was built with -ggdb3 (to get as much debugging info as possible), I'd just report upstream at this point. If you can reproduce with -Og -ggdb3, the backtraces may be better again, but reduced optimisation can hide bugs too. |
|
Back to top |
|
|
localtoast n00b
Joined: 13 Jul 2024 Posts: 28
|
Posted: Sun Sep 22, 2024 8:36 am Post subject: |
|
|
sam_ wrote: | Curious as to why it goes wrong a bit earlier in the others but maybe something just gets inlined. If this was built with -ggdb3 (to get as much debugging info as possible), I'd just report upstream at this point. If you can reproduce with -Og -ggdb3, the backtraces may be better again, but reduced optimisation can hide bugs too. |
Well, thank you again for looking. I've created a Qt bug report with all the info we've got here:
https://bugreports.qt.io/browse/QTBUG-129193 |
|
Back to top |
|
|
localtoast n00b
Joined: 13 Jul 2024 Posts: 28
|
Posted: Mon Sep 23, 2024 2:44 am Post subject: |
|
|
It doesn't look like anyone else has any further input, so: sam_, Ionen, asturm, Hu, and Arsen, thank you all very much for your help and patience with this, I think we're done. |
|
Back to top |
|
|
Ionen Developer
Joined: 06 Dec 2018 Posts: 2887
|
|
Back to top |
|
|
tranquilcool Veteran
Joined: 25 Mar 2005 Posts: 1246
|
Posted: Tue Sep 24, 2024 10:16 am Post subject: |
|
|
I applied the patch to dev-qt/qtbase
and compiled with -march=native
and it works.
Thank you.
INFO: setup
Package: dev-qt/qtbase-6.7.2-r4:6/6.7.2
Repository: gentoo
Maintainer: qt@gentoo.org
Upstream: https://bugreports.qt.io/
USE: X abi_x86_64 amd64 concurrent cups dbus elibc_glibc gtk gui icu kernel_linux libinput libproxy network nls opengl sql sqlite ssl udev vulkan wayland widge>
FEATURES: ccache network-sandbox preserve-libs sandbox userpriv usersandbox
INFO: prepare
Source directory (CMAKE_USE_DIR): "/var/tmp/notmpfs/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2"
Build directory (BUILD_DIR): "/var/tmp/notmpfs/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build"
Applying qtbase-6.5.2-hppa-forkfd-grow-stack.patch ...
Applying qtbase-6.5.2-no-symlink-check.patch ...
Applying qtbase-6.6.1-forkfd-childstack-size.patch ...
Applying qtbase-6.6.3-gcc14-avx512fp16.patch ...
Applying qtbase-6.7.2-CVE-2024-39936.patch ...
Applying qtbase-6.7.2-gcc15-odr.patch ...
Applying qtbase-6.7.2-float16-sse2.patch ...
Applying qtbase-6.7.2-qwindowprivate-crash.patch ...
Applying qtbase-6.7.2-qcontiguouscache.patch ...
^[[32m================================================================================================^[[0m
Applying user patches from /etc/portage/patches ...
Applying 0d85332.diff.patch ...
User patches applied.
^[[32m================================================================================================^[[0m
INFO: configure
Source directory (CMAKE_USE_DIR): "/var/tmp/notmpfs/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2"
Build directory (BUILD_DIR): "/var/tmp/notmpfs/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build"
INFO: compile
Source directory (CMAKE_USE_DIR): "/var/tmp/notmpfs/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2"
Build directory (BUILD_DIR): "/var/tmp/notmpfs/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build"
INFO: test
Skipping make test/check due to ebuild restriction.
INFO: install
Source directory (CMAKE_USE_DIR): "/var/tmp/notmpfs/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2"
Build directory (BUILD_DIR): "/var/tmp/notmpfs/portage/dev-qt/qtbase-6.7.2-r4/work/qtbase-everywhere-src-6.7.2_build"
Final size of build directory: 521032 KiB (508.8 MiB)
Final size of installed tree: 75432 KiB ( 73.6 MiB) _________________ this is a strange strange world. |
|
Back to top |
|
|
Ionen Developer
Joined: 06 Dec 2018 Posts: 2887
|
Posted: Tue Sep 24, 2024 2:11 pm Post subject: |
|
|
tranquilcool wrote: | I applied the patch to dev-qt/qtbase
and compiled with -march=native
and it works. | Nice, thanks for testing.
Will give it a bit longer to possibly get a 2nd confirmation and/or in case upstream has anything else to add, but will add the patch to the ebuild later for everyone in a qtbase-6.7.2-r5. |
|
Back to top |
|
|
localtoast n00b
Joined: 13 Jul 2024 Posts: 28
|
Posted: Wed Sep 25, 2024 2:56 am Post subject: |
|
|
Ionen wrote: | tranquilcool wrote: | I applied the patch to dev-qt/qtbase
and compiled with -march=native
and it works. | Nice, thanks for testing.
Will give it a bit longer to possibly get a 2nd confirmation and/or in case upstream has anything else to add, but will add the patch to the ebuild later for everyone in a qtbase-6.7.2-r5. |
Here is your second confirmation. I built with the patch and FEATURES=test, and all the previously failing tests passed, except one. Building without FEATURES=test now. |
|
Back to top |
|
|
Ionen Developer
Joined: 06 Dec 2018 Posts: 2887
|
Posted: Wed Sep 25, 2024 4:03 am Post subject: |
|
|
localtoast wrote: | Here is your second confirmation. | Thanks. Seen upstream merged it too, so I've backported it to our 6.7.2 (so, can hopefully cleanup workarounds/patches with qtbase-6.7.2-r5).
Quote: | I built with the patch and FEATURES=test, and all the previously failing tests passed, except one. Building without FEATURES=test now. | wrt the failing test, could consider forcing a utf8 locale for tests but I do recommend that you switch to a utf8 locale either way for your system's own good. There are some packages where non-utf8 can cause other issues and even build failures. |
|
Back to top |
|
|
tranquilcool Veteran
Joined: 25 Mar 2005 Posts: 1246
|
Posted: Wed Sep 25, 2024 9:59 am Post subject: |
|
|
@Ionen
emerge --sync and updated to the latest dev-qt/qtbase. Everything works.
Thank you. _________________ this is a strange strange world. |
|
Back to top |
|
|
localtoast n00b
Joined: 13 Jul 2024 Posts: 28
|
Posted: Thu Sep 26, 2024 8:41 am Post subject: |
|
|
For anyone who is interested, I've also followed the Qt devs' advice and opened a GCC bug for the root cause of all of this here:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116854
I don't have very much faith in my own ability to convince the GCC dev team that this is a bug in GCC, mostly because I barely understand how it's a bug in GCC so I'm unlikely to be able to convincingly explain it, but we shall see what happens .
EDIT: Well that was quick. |
|
Back to top |
|
|
Ionen Developer
Joined: 06 Dec 2018 Posts: 2887
|
Posted: Thu Sep 26, 2024 9:02 pm Post subject: |
|
|
localtoast wrote: | For anyone who is interested, I've also followed the Qt devs' advice and opened a GCC bug for the root cause of all of this here: | It wasn't the root cause, just a different (related) thing, albeit there tend to be no end to flaky cpus.
e.g. -march=haswell enables avx as you'd expected, but .. I have a cheap haswell without avx support! -march=haswell is thus wrong for me, and -march=native correctly does -march=haswell -mno-avx (I believe in your case it's doing -march=bdver4 -mno-rdrnd which would be correct).
Does that mean that -march=haswell should not do avx by default? Or bdver4 not do rdrnd because some cpus may lack it? The latter may be more reasonable but feel there's not really a "correct" answer beside at most using the most common set. Either way that's why I typically discourage users from using -march=<exact-cpu-family> over native unless they used "app-misc/resolve-march-native" to get the exact resolution as it otherwise may be wrong for the used cpu even if the chosen cpu family is correct.
Edit: just seen pinskia did the same argument wrt avx, so yeah Either way don't worry about it, that it should be changed is just the impression Thiago had, if wants to argue about it then Thiago should do it. |
|
Back to top |
|
|
localtoast n00b
Joined: 13 Jul 2024 Posts: 28
|
Posted: Sun Sep 29, 2024 2:13 pm Post subject: |
|
|
Ionen wrote: | localtoast wrote: | For anyone who is interested, I've also followed the Qt devs' advice and opened a GCC bug for the root cause of all of this here: | It wasn't the root cause, just a different (related) thing, albeit there tend to be no end to flaky cpus.
e.g. -march=haswell enables avx as you'd expected, but .. I have a cheap haswell without avx support! -march=haswell is thus wrong for me, and -march=native correctly does -march=haswell -mno-avx (I believe in your case it's doing -march=bdver4 -mno-rdrnd which would be correct).
Does that mean that -march=haswell should not do avx by default? Or bdver4 not do rdrnd because some cpus may lack it? The latter may be more reasonable but feel there's not really a "correct" answer beside at most using the most common set. Either way that's why I typically discourage users from using -march=<exact-cpu-family> over native unless they used "app-misc/resolve-march-native" to get the exact resolution as it otherwise may be wrong for the used cpu even if the chosen cpu family is correct.
Edit: just seen pinskia did the same argument wrt avx, so yeah Either way don't worry about it, that it should be changed is just the impression Thiago had, if wants to argue about it then Thiago should do it. |
Fair enough. What puzzles me about this is that I compiled using -march=native and got haswell enabled. I originally understood that this was a Qt bug - Qt configuring the build incorrectly. Then from what Thiago said, I got that this was a GCC bug, now the conversation in the GCC bug report appears to suggest that I was right to begin with and it's a Qt bug. I don't understand the build process well enough to know, or apparently to not make myself look like an idiot, and now I'm concerned that I've filed a stupid bug. |
|
Back to top |
|
|
Ionen Developer
Joined: 06 Dec 2018 Posts: 2887
|
Posted: Sun Sep 29, 2024 3:51 pm Post subject: |
|
|
localtoast wrote: | Fair enough. What puzzles me about this is that I compiled using -march=native and got haswell enabled. I originally understood that this was a Qt bug | Qt uses the term "haswell" not to identify your cpu but rather the feature set, if your cpu supports all the things that a haswell supports then it can enable the haswell set of optimizations.
However (as I understand it) Qt's testing is incomplete, and it kind of assumed rdrnd support if you have other things like AVX2 and such (introduced with haswell, which also had rdrnd). Then it tried to use it regardless of what your -march=native is reporting which ended badly.
Edit: this been kind of a recurring theme with Qt and there's been several bugs with some cpus missing one instruction or another (which we're working around in the qt6-build eclass), albeit in other cases it just failed to build rather than generate a segfaulting library and the issue was easier to identify. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|