Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 925438 - dev-qt/qtwidgets:5: SIGSEGV with QT_SCREEN_SCALE_FACTORS
Summary: dev-qt/qtwidgets:5: SIGSEGV with QT_SCREEN_SCALE_FACTORS
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-02-24 17:56 UTC by Ostashevskyi Viktor
Modified: 2024-02-27 23:36 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ostashevskyi Viktor 2024-02-24 17:56:28 UTC
Hello,

While trying to test different scaling factors for monitors with Qt5 I receive a crash in qtwidgets:5

$ QT_AUTO_SCREEN_SCALE_FACTOR=0 QT_SCREEN_SCALE_FACTORS='eDP-1=1.25;HDMI-2=1.0;' gdb qdbusviewer

Thread 1 "qdbusviewer" received signal SIGSEGV, Segmentation fault.
QWidget::hide (this=0x747865746e6f430a) at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidget.cpp:7942
warning: 7942   /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidget.cpp: Немає такого файла або каталогу
(gdb) bt
#0  QWidget::hide (this=0x747865746e6f430a) at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidget.cpp:7942
#1  0x00007ffff7c8fb80 in QMenuBarPrivate::updateGeometries (this=this@entry=0x6e7d60)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/widgets/qmenubar.cpp:256
#2  0x00007ffff7c92951 in QMenuBar::changeEvent (this=0x6e4fe0, e=0x7fffffffcc50)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/widgets/qmenubar.cpp:1446
#3  0x00007ffff7b97d1b in QWidget::event (this=this@entry=0x6e4fe0, event=event@entry=0x7fffffffcc50)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidget.cpp:8926
#4  0x00007ffff7c92a99 in QMenuBar::event (this=0x6e4fe0, e=0x7fffffffcc50)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/widgets/qmenubar.cpp:1512
#5  0x00007ffff7b66a04 in QApplicationPrivate::notify_helper (this=this@entry=0x43b9f0, receiver=receiver@entry=0x6e4fe0, e=e@entry=0x7fffffffcc50)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qapplication.cpp:3640
#6  0x00007ffff7b6bf19 in QApplication::notify (this=0x7fffffffd5b0, receiver=0x6e4fe0, e=0x7fffffffcc50)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qapplication.cpp:3590
#7  0x00007ffff71051e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
#8  0x00007ffff7b8ca87 in QWidgetPrivate::updateFont (this=this@entry=0x6e7d60, font=...)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidget.cpp:4663
#9  0x00007ffff7b98302 in QWidget::event (this=this@entry=0x6e4fe0, event=event@entry=0x7fffffffd0f0)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidget.cpp:9081
#10 0x00007ffff7c92a99 in QMenuBar::event (this=0x6e4fe0, e=0x7fffffffd0f0)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/widgets/qmenubar.cpp:1512
#11 0x00007ffff7b66a04 in QApplicationPrivate::notify_helper (this=this@entry=0x43b9f0, receiver=receiver@entry=0x6e4fe0, e=e@entry=0x7fffffffd0f0)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qapplication.cpp:3640
#12 0x00007ffff7b6bf19 in QApplication::notify (this=0x7fffffffd5b0, receiver=0x6e4fe0, e=0x7fffffffd0f0)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qapplication.cpp:3590
#13 0x00007ffff71051e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
#14 0x00007ffff7ba9040 in sendScreenChangeRecursively (widget=0x6e4fe0)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidgetwindow.cpp:757
#15 0x00007ffff7ba907e in sendScreenChangeRecursively (widget=<optimized out>)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidgetwindow.cpp:762
#16 0x00007ffff7ba90a5 in QWidgetWindow::handleScreenChange (this=0x6d55b0)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidgetwindow.cpp:769
#17 0x00007ffff7ba90d2 in QWidgetWindow::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qwidgetwindow_p.cpp:77
#18 0x00007ffff7134a00 in ?? () from /usr/lib64/libQt5Core.so.5
#19 0x00007ffff75c151f in QWindow::screenChanged(QScreen*) () from /usr/lib64/libQt5Gui.so.5
#20 0x00007ffff75c1c73 in QWindowPrivate::emitScreenChangedRecursion(QScreen*) () from /usr/lib64/libQt5Gui.so.5
#21 0x00007ffff7b8dba7 in QWidgetPrivate::create (this=this@entry=0x44d180)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidget.cpp:1289
#22 0x00007ffff7b8ddce in QWidget::create (this=this@entry=0x7fffffffd5c0, window=window@entry=0, initializeWindow=initializeWindow@entry=true, 
    destroyOldWindow=destroyOldWindow@entry=true) at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidget.cpp:1181
--Type <RET> for more, q to quit, c to continue without paging--
#23 0x00007ffff7b8e23c in QWidgetPrivate::createWinId (this=<optimized out>)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidget.cpp:2388
#24 0x00007ffff7b8e4bd in QWidget::createWinId (this=this@entry=0x7fffffffd5c0)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/kernel/qwidget.cpp:2444
#25 0x00007ffff7c90f82 in QMenuBarPrivate::handleReparent (this=this@entry=0x6e7d60)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/widgets/qmenubar.cpp:1421
#26 0x00007ffff7c9107d in QMenuBarPrivate::init (this=0x6e7d60) at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/widgets/qmenubar.cpp:705
#27 0x00007ffff7c9114a in QMenuBar::QMenuBar (this=this@entry=0x6e4fe0, parent=parent@entry=0x7fffffffd5c0)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/widgets/qmenubar.cpp:741
#28 0x00007ffff7c671b3 in QMainWindow::menuBar (this=0x7fffffffd5c0)
    at /var/tmp/portage/dev-qt/qtwidgets-5.15.12-r1/work/qtbase-everywhere-src-5.15.12/src/widgets/widgets/qmainwindow.cpp:508
#29 0x00000000004187c5 in ?? ()
#30 0x000000000040e180 in ?? ()
#31 0x00007ffff6ae1af7 in ?? () from /lib64/libc.so.6
#32 0x00007ffff6ae1bb5 in __libc_start_main () from /lib64/libc.so.6
#33 0x000000000040e511 in ?? ()

Same happens with any Qt5 or KDE5 GUI application.

Reproducible: Always

Steps to Reproduce:
1. You need a multi-monitor system
2. Set environment variable QT_AUTO_SCREEN_SCALE_FACTOR=0 
3. Set environment variable QT_SCREEN_SCALE_FACTORS='eDP-1=1.25;HDMI-2=1.0;'. Scale factor should be different and you need to put output names specific to your system.
4. Run any Qt5/KDE5 GUI application

3.
Actual Results:  
Application crashed with SIGSEGV

Expected Results:  
Application running correctly

Scale factors for the monitors should be different