Bug 402923

Summary: Segmentation fault in Kexi form widget
Product: [Applications] KEXI Reporter: ivan <bogushivan34>
Component: FormsAssignee: Jarosław Staniek <staniek>
Status: CLOSED FIXED    
Severity: crash CC: adam, inksi, staniek
Priority: NOR Keywords: drkonqi
Version: 3.1.0   
Target Milestone: 3.2   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: 3.2.0
Sentry Crash Report:
Attachments: Types
Kexi sig fault crash

Description ivan 2019-01-06 12:57:33 UTC
Application: kexi-3 (3.1.0 ())

Qt Version: 5.12.0
Frameworks Version: 5.53.0
Operating System: Linux 4.20.0-arch1-1-ARCH x86_64
Distribution (Platform): Archlinux Packages

-- Information about the crash:
- What I was doing when the application crashed:
Double click (to design form in my case) leads to segmentation fault in Kexi

The crash can be reproduced every time.

-- Backtrace:
Application: Kexi (kexi-3), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f5272a38400 (LWP 3210))]

Thread 5 (Thread 0x7f524daf2700 (LWP 3217)):
#0  0x00007f52793d5afc in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007f527949ecd1 in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:864
#2  0x00007f527949ecd1 in std::condition_variable::wait(std::unique_lock<std::mutex>&) (this=<optimized out>, __lock=...) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/condition_variable.cc:53
#3  0x00007f5250b09f54 in  () at /usr/lib/libQt5WebKit.so.5
#4  0x00007f5250b0a079 in  () at /usr/lib/libQt5WebKit.so.5
#5  0x00007f52794a5063 in std::execute_native_thread_routine(void*) (__p=0x55a8f4fd07a0) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
#6  0x00007f52793cfa9d in start_thread () at /usr/lib/libpthread.so.0
#7  0x00007f527b328b23 in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7f52635ae700 (LWP 3215)):
#0  0x00007f52793d5afc in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007f52637ffc24 in  () at /usr/lib/dri/i965_dri.so
#2  0x00007f52637ff948 in  () at /usr/lib/dri/i965_dri.so
#3  0x00007f52793cfa9d in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007f527b328b23 in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7f526b599700 (LWP 3213)):
#0  0x00007f527b3197a4 in read () at /usr/lib/libc.so.6
#1  0x00007f5278952971 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007f52789a30b0 in g_main_context_check () at /usr/lib/libglib-2.0.so.0
#3  0x00007f52789a44e6 in  () at /usr/lib/libglib-2.0.so.0
#4  0x00007f52789a462e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#5  0x00007f527b6c15c4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#6  0x00007f527b66a58c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#7  0x00007f527b4ae5c9 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#8  0x00007f5277ca8ba6 in  () at /usr/lib/libQt5DBus.so.5
#9  0x00007f527b4af9cc in  () at /usr/lib/libQt5Core.so.5
#10 0x00007f52793cfa9d in start_thread () at /usr/lib/libpthread.so.0
#11 0x00007f527b328b23 in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7f5271619700 (LWP 3212)):
#0  0x00007f527b31dc21 in poll () at /usr/lib/libc.so.6
#1  0x00007f5274f19630 in  () at /usr/lib/libxcb.so.1
#2  0x00007f5274f1b2db in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007f527260696b in  () at /usr/lib/libQt5XcbQpa.so.5
#4  0x00007f527b4af9cc in  () at /usr/lib/libQt5Core.so.5
#5  0x00007f52793cfa9d in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007f527b328b23 in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7f5272a38400 (LWP 3210)):
[KCrash Handler]
#6  0x00007f524ae8ff20 in  () at /usr/lib/qt/plugins/kexi/3.1/forms/widgets/org.kexi-project.form.widgets.main.so
#7  0x00007f524b7ddd93 in KFormDesigner::InlineTextEditingCommand::execute() () at /usr/lib/libkformdesigner3.1.so.3.1
#8  0x00007f524b7c1499 in KFormDesigner::Form::createInlineEditor(KFormDesigner::WidgetFactory::InlineEditorCreationArguments const&) () at /usr/lib/libkformdesigner3.1.so.3.1
#9  0x00007f524b7a7829 in KFormDesigner::WidgetLibrary::startInlineEditing(QByteArray const&, QWidget*, KFormDesigner::Container*) () at /usr/lib/libkformdesigner3.1.so.3.1
#10 0x00007f524b79f5eb in KFormDesigner::Container::eventFilter(QObject*, QEvent*) () at /usr/lib/libkformdesigner3.1.so.3.1
#11 0x00007f527b66b60b in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#12 0x00007f527ba77e24 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#13 0x00007f527ba7f8b9 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#14 0x00007f527b66b8f9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#15 0x00007f527ba7eb98 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /usr/lib/libQt5Widgets.so.5
#16 0x00007f527bad3d2d in  () at /usr/lib/libQt5Widgets.so.5
#17 0x00007f527bad6c67 in  () at /usr/lib/libQt5Widgets.so.5
#18 0x00007f527ba77e34 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#19 0x00007f527ba7f671 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#20 0x00007f527b66b8f9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#21 0x00007f5279733960 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5
#22 0x00007f5279734e26 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/libQt5Gui.so.5
#23 0x00007f527970e75c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#24 0x00007f527260799c in  () at /usr/lib/libQt5XcbQpa.so.5
#25 0x00007f52789a2a2f in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#26 0x00007f52789a45e9 in  () at /usr/lib/libglib-2.0.so.0
#27 0x00007f52789a462e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#28 0x00007f527b6c15a9 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#29 0x00007f527b66a58c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#30 0x00007f527b672896 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#31 0x000055a8f38a1cfe in  ()
#32 0x00007f527b251223 in __libc_start_main () at /usr/lib/libc.so.6
#33 0x000055a8f38a1e6a in _start ()
[Inferior 1 (process 3210) detached]

Reported using DrKonqi
Comment 1 Jarosław Staniek 2019-01-06 20:14:43 UTC
Hello Ivan, what widget type in the Form designer have you double clicked?
Thanks.
Comment 2 Jarosław Staniek 2019-01-06 20:15:53 UTC
Created attachment 117310 [details]
Types
Comment 3 ivan 2019-01-07 12:33:44 UTC
Created attachment 117328 [details]
Kexi sig fault crash

(In reply to Jarosław Staniek from comment #1)
> Hello Ivan, what widget type in the Form designer have you double clicked?
> Thanks.

I do not remember what happened with a double click. But today I noticed that kexi falls steadily when I right-click on an input form. Below is a video showing my actions.

Не помню, что произошло при двойном клике. Но сегодня я заметил, что kexi стабильно падает, при клике правой кнопкой мыши на форму ввода. Ниже прикреплено видео, где показан весь процесс.
Comment 4 Jarosław Staniek 2019-01-07 12:57:41 UTC
> kexi falls steadily when I right-click on an input form. Below is a video showing my actions.

Thanks Ivan, confirmed this.
Comment 5 Jarosław Staniek 2019-01-07 12:58:08 UTC
Assuming this is the same bug, if not we will extend the scope.
Comment 6 Jarosław Staniek 2019-01-07 13:20:09 UTC
To reproduce the crash:

Right-click in form data view on widget such as text box. Crash happens if the box is not bound to data source.
Comment 7 Jarosław Staniek 2019-01-07 13:23:49 UTC
Git commit 96c30982dedee046bac9f9c57ad869fa6f9ea44f by Jaroslaw Staniek.
Committed on 07/01/2019 at 13:23.
Pushed by staniek into branch '3.2'.

Fix crash when right-clicking in form data view on widget such as text box

The crash happens if the box is not bound to data source.
FIXED-IN:3.2.0

M  +5    -3    src/plugins/forms/widgets/kexidbutils.cpp

https://commits.kde.org/kexi/96c30982dedee046bac9f9c57ad869fa6f9ea44f