Bug 38709 - keepassxc сегфолтится в libQt5Gui.so
Summary: keepassxc сегфолтится в libQt5Gui.so
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libqt5-gui (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 critical
Assignee: Sergey V Turchin
QA Contact: qa-sisyphus
URL:
Keywords:
: 39359 (view as bug list)
Depends on: 39732
Blocks:
  Show dependency tree
 
Reported: 2020-07-14 10:08 MSK by Evgenii Terechkov
Modified: 2021-04-19 20:25 MSK (History)
10 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Evgenii Terechkov 2020-07-14 10:08:51 MSK
Версия 2.6.0-alt1 падает с сегфолтом при наведений курсора на некоторые (?) пункты контекстного меню записей. Т.е. при открытий контекстного меню и прохождений курсора над какими-то пунктами всё хорошо но при указаний на другие - происходит сегфолт:

==8<============================================================================
Вт июл 14 14:02:26 2020] keepassxc[1692768]: segfault at 8 ip 00007f52cf7a78d0 sp 00007fff4e567dc8 error 4 in libQt5Gui.so.5.12.9[7f52cf755000+410000]
Вт июл 14 14:02:26 2020] Code: b8 80 00 00 00 48 85 ff 74 10 48 8b 07 40 0f b6 f6 ff a0 18 01 00 00 0f 1f 00 31 c0 c3 90 66 66 2e 0f 1f 84 00 00 00 00 00 90 <48> 8b 47 08 48 8b 78 78 48 85 ff 75 f3 48 8b 90 20 01 00 00 48 85        
==8<============================================================================
Comment 1 Evgenii Terechkov 2020-07-14 10:16:19 MSK
Если откатить пакет до предыдущей версий (2.5.4-alt1), проблема не наблюдается.
Comment 2 Pavel Nakonechnyi 2020-07-14 13:06:28 MSK
В качестве обходного пути можно изменить язык приложения на английский.

Открыл запись в апстриме: https://github.com/keepassxreboot/keepassxc/issues/5070
Comment 3 Олег Соловьев 2020-07-14 15:12:11 MSK
Может еще и backtrace приложить?

#0  QWindow::screen (this=<optimized out>) at kernel/qwindow.cpp:1987
#1  0x00007fefd8071b32 in QMenu::popup (this=0x560492549b30, p=..., atAction=atAction@entry=0x0) at ../../src/widgets/kernel/qwidget_p.h:1015
#2  0x00007fefd80730ab in QMenu::internalDelayedPopup (this=0x56049258f6f0) at /usr/include/c++/9/bits/atomic_base.h:413
#3  0x00007fefd744c505 in QObject::event (this=this@entry=0x56049258f6f0, e=e@entry=0x7ffe62e5d4c0) at kernel/qobject.cpp:1283
#4  0x00007fefd7f31735 in QWidget::event (this=this@entry=0x56049258f6f0, event=event@entry=0x7ffe62e5d4c0) at kernel/qwidget.cpp:9409
#5  0x00007fefd80784a3 in QMenu::event (this=0x56049258f6f0, e=0x7ffe62e5d4c0) at widgets/qmenu.cpp:3071
#6  0x00007fefd7eefc42 in QApplicationPrivate::notify_helper (this=this@entry=0x560491d5c180, receiver=receiver@entry=0x56049258f6f0, e=e@entry=0x7ffe62e5d4c0) at kernel/qapplication.cpp:3700
#7  0x00007fefd7ef91c0 in QApplication::notify (this=0x7ffe62e5d830, receiver=0x56049258f6f0, e=0x7ffe62e5d4c0) at kernel/qapplication.cpp:3446
#8  0x00007fefd7421212 in QCoreApplication::notifyInternal2 (receiver=0x56049258f6f0, event=0x7ffe62e5d4c0) at ../../src/corelib/kernel/qobject.h:142
#9  0x00007fefd7476370 in QTimerInfoList::activateTimers (this=0x560491de7950) at kernel/qtimerinfo_unix.cpp:643
#10 0x00007fefd7476bf4 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:182
#11 0x00007fefd5d9435d in g_main_dispatch (context=0x7fefcc005010) at ../glib/gmain.c:3309
#12 g_main_context_dispatch (context=context@entry=0x7fefcc005010) at ../glib/gmain.c:3974
#13 0x00007fefd5d945e0 in g_main_context_iterate (context=context@entry=0x7fefcc005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4047
#14 0x00007fefd5d9466f in g_main_context_iteration (context=0x7fefcc005010, may_block=may_block@entry=1) at ../glib/gmain.c:4108
#15 0x00007fefd7476fa1 in QEventDispatcherGlib::processEvents (this=0x560491de8dd0, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#16 0x00007fefd741fe9b in QEventLoop::exec (this=this@entry=0x7ffe62e5d700, flags=..., flags@entry=...) at ../../src/corelib/global/qflags.h:140
#17 0x00007fefd7427942 in QCoreApplication::exec () at ../../src/corelib/global/qflags.h:120
#18 0x00007fefd78c6d6c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1784
#19 0x00007fefd7eefbb5 in QApplication::exec () at kernel/qapplication.cpp:2856
#20 0x0000560490802b95 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/keepassxc-2.6.0/src/main.cpp:160
Comment 4 Pavel Nakonechnyi 2020-07-15 12:59:04 MSK
Как отметил https://github.com/droidmonkey в https://github.com/keepassxreboot/keepassxc/issues/5070 это действительно баг в Qt, см. https://bugreports.qt.io/browse/QTBUG-83946

Воспроизводится на текущем Сизифе с примерно тем же backtrace:

Thread 1 "menus" received signal SIGSEGV, Segmentation fault.
QWindow::screen (this=<optimized out>) at kernel/qwindow.cpp:1987
1987        Q_D(const QWindow);
(gdb) bt
#0  QWindow::screen (this=<optimized out>) at kernel/qwindow.cpp:1987
#1  0x00007ffff7bfdb32 in QMenu::popup (this=0x597520, p=..., atAction=0x0) at ../../src/widgets/kernel/qwidget_p.h:1015
#2  0x0000000000404620 in MainWindow::aboutQt (this=0x7fffffffd9f0) at mainwindow.cpp:207
...
Comment 5 Evgenii Terechkov 2020-07-15 15:04:50 MSK
Кстати, смена языка приложений на английский не помогает, крошится всё равно.
Comment 6 Sergey V Turchin 2020-07-15 18:01:43 MSK
Могу пока обрадоывать лишь тем, что я уже занят сборкой Qt-5.15.
Comment 7 Pavel Nakonechnyi 2020-08-20 21:13:06 MSK
@evg проверьте, пожалуйста. По-моему проблема ушла с обновлением Qt и т.п. Сейчас еще отправляю версию 2.6.1 в Сизиф.
Comment 8 Pavel Nakonechnyi 2020-12-05 19:19:20 MSK
*** Bug 39359 has been marked as a duplicate of this bug. ***
Comment 9 Sergey V Turchin 2020-12-07 09:35:51 MSK
> я уже занят сборкой Qt-5.15.
Оно уже готово и в недалёком будущем поедет в p9.
Comment 10 Sergey V Turchin 2021-04-13 10:42:17 MSK
> Оно уже готово и в недалёком будущем поедет в p9.
Похоже, будущее гораздо дальше, чем предполагалось ранее.
Comment 11 Sergey V Turchin 2021-04-14 17:52:38 MSK
Можно ещё на всякий проверить обновлённый keepassxc http://git.altlinux.org/tasks/269925/
Comment 12 Aleksei Nikiforov 2021-04-15 15:02:51 MSK
Сделано задание для p9 #269978, в котором данная проблема должна исправляться.
Comment 13 Alexander Makeenkov 2021-04-19 15:05:40 MSK
(Ответ для Aleksei Nikiforov на комментарий #12)
> Сделано задание для p9 #269978, в котором данная проблема должна
> исправляться.

Проверил с заданием 269978 - ошибка исправлена, keepassxc не падает.
Comment 14 Repository Robot 2021-04-19 20:25:59 MSK
qt5-base-5.12.9-alt1.M90P.1 -> p9:

 Thu Apr 15 2021 Aleksei Nikiforov <darktemplar@altlinux> 5.12.9-alt1.M90P.1
 - Backported QMenu updates from Qt-5.15.2 (Closes: 38709).