Bug 390794

Summary: kexi crashes at startup
Product: [Applications] KEXI Reporter: Antonio Rojas <arojas>
Component: GeneralAssignee: Jarosław Staniek <staniek>
Status: CLOSED FIXED    
Severity: crash CC: adam, demm, inksi, pedrogomezmartin1999, staniek
Priority: HI    
Version: 3.1.0 Beta   
Target Milestone: 3.1   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 3.1.0
Sentry Crash Report:

Description Antonio Rojas 2018-02-20 17:24:22 UTC
Kexi crashes at startup with Qt 5.10.1, Frameworks 5.34. Can be reproduced with 3.0.2, 3.0.91 and git HEAD of 3.1 branch

(gdb) bt
#0  0x00007ffff75fb87a in QHeaderViewPrivate::_q_layoutAboutToBeChanged (this=0x5555559f0e20)
    at itemviews/qheaderview.cpp:2080
#1  0x00007ffff6e00736 in QMetaObject::activate (sender=sender@entry=0x555555965770, signalOffset=<optimized out>, 
    local_signal_index=local_signal_index@entry=6, argv=argv@entry=0x7fffffffdfc0) at kernel/qobject.cpp:3767
#2  0x00007ffff6e00e39 in QMetaObject::activate (sender=sender@entry=0x555555965770, 
    m=m@entry=0x7ffff7231da0 <QAbstractItemModel::staticMetaObject>, local_signal_index=local_signal_index@entry=6, 
    argv=argv@entry=0x7fffffffdfc0) at kernel/qobject.cpp:3629
#3  0x00007ffff6d68e97 in QAbstractItemModel::layoutAboutToBeChanged (this=this@entry=0x555555965770, _t1=..., 
    _t2=<optimized out>, _t2@entry=QAbstractItemModel::NoLayoutChangeHint) at .moc/moc_qabstractitemmodel.cpp:588
#4  0x00007ffff5b66057 in KexiCompletionModel::resetModel (this=0x555555965770)
    at /build/kexi/src/kexi/src/kexiutils/completer/KexiCompleter.cpp:466
#5  0x00007ffff5b66e75 in KexiCompletionModel::filter (this=this@entry=0x555555965770, parts=...)
    at /build/kexi/src/kexi/src/kexiutils/completer/KexiCompleter.cpp:452
#6  0x00007ffff5b6ba53 in KexiCompletionModel::invalidate (this=0x555555965770)
    at /build/kexi/src/kexi/src/kexiutils/completer/KexiCompleter.cpp:446
#7  KexiCompletionModel::setSourceModel (this=0x555555965770, source=<optimized out>)
    at /build/kexi/src/kexi/src/kexiutils/completer/KexiCompleter.cpp:240
#8  0x00007ffff5b680c3 in KexiCompleter::setModel (this=this@entry=0x5555558f0250, model=model@entry=0x55555596ba60)
    at /build/kexi/src/kexi/src/kexiutils/completer/KexiCompleter.cpp:1090
#9  0x00007ffff7b0c0f4 in KexiSearchLineEdit::KexiSearchLineEdit (this=0x5555558f2fd0, parent=<optimized out>)
    at /build/kexi/src/kexi/src/main/KexiSearchLineEdit.cpp:377
#10 0x00007ffff7af854b in KexiTabbedToolBar::KexiTabbedToolBar (this=0x55555589bc60, parent=<optimized out>)
    at /build/kexi/src/kexi/src/main/KexiMainWindow_p.cpp:709
#11 0x00007ffff7ae7644 in KexiMainWindow::setupMainWidget (this=this@entry=0x55555586a5d0)
    at /build/kexi/src/kexi/src/main/KexiMainWindow.cpp:1812
#12 0x00007ffff7aebec2 in KexiMainWindow::KexiMainWindow (this=0x55555586a5d0, parent=<optimized out>)
    at /build/kexi/src/kexi/src/main/KexiMainWindow.cpp:464
#13 0x00007ffff7aec6a6 in KexiMainWindow::create (arguments=..., componentName=..., extraOptions=...)
    at /build/kexi/src/kexi/src/main/KexiMainWindow.cpp:390
#14 0x0000555555554c96 in main (argc=<optimized out>, argv=<optimized out>) at /build/kexi/src/kexi/src/main.cpp:32
Comment 1 Jarosław Staniek 2018-02-20 17:38:51 UTC
Thanks. Since it's a compilation, is it possible to check it with older Qt like 5.9.4?
Comment 2 Antonio Rojas 2018-02-20 17:45:06 UTC
Actually even 5.10.0 is OK. Will try to bisect.
Comment 3 Antonio Rojas 2018-02-20 19:47:08 UTC
Bisected to https://github.com/qt/qtbase/commit/3adfcbf1
Comment 4 Jarosław Staniek 2018-02-20 19:51:45 UTC
Big thanks Antionio, we'll look there.
Comment 5 Jarosław Staniek 2018-02-21 10:57:35 UTC
Update: Because of this bug we've stopped the Final 3.1 release and will only release RC1 on Feb 23rd. So there's time to find a solution.
Comment 6 Jarosław Staniek 2018-02-21 11:13:49 UTC
Asked on a KDE freebsd mailing list: https://mail.kde.org/pipermail/kde-freebsd/2018-February/027445.html

I was unable to find anything specifically for openBSD.
In worst case we would have appropriate default plugin path set in main(), so do not worry.

There's also page https://www.freebsd.org/doc/en/books/porters-handbook/using-qt.html, no idea if it helps in any way.
Comment 7 Antonio Rojas 2018-02-21 11:24:54 UTC
(In reply to Jarosław Staniek from comment #6)
> Asked on a KDE freebsd mailing list:
> https://mail.kde.org/pipermail/kde-freebsd/2018-February/027445.html
> 
> I was unable to find anything specifically for openBSD.
> In worst case we would have appropriate default plugin path set in main(),
> so do not worry.
> 
> There's also page
> https://www.freebsd.org/doc/en/books/porters-handbook/using-qt.html, no idea
> if it helps in any way.

Wrong bug?
Comment 8 Jarosław Staniek 2018-02-21 11:34:15 UTC
Yes, sorry, please ignore.
Comment 9 Antonio Rojas 2018-02-27 12:30:48 UTC
*** Bug 391161 has been marked as a duplicate of this bug. ***
Comment 10 Jarosław Staniek 2018-02-27 12:44:35 UTC
@ pedrogomezmartin1999@gmail.com We plan a fix this in 3.1 but not in 3.0. Even 3.1 RC still has the issue.
Comment 11 Jarosław Staniek 2018-03-01 20:35:55 UTC
Update: Qt potentially fixed for 5.11, see this comment: https://bugreports.qt.io/browse/QTBUG-65478?focusedCommentId=393560&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-393560

Now a question what to do on the KEXI side. One clever idea is to add an option to kexirc that hides this feature (in config, not at build time). Users unfortunate enough that use crashing Qt version can disable the feature before starting KEXI. 

We can even disable the feature by default when 5.10.1 <= Qt < 5.11.

Opinions welcome.
Comment 12 Antonio Rojas 2018-03-02 11:46:44 UTC
IMO a message to kde-distro-packagers asking distros shipping Qt 5.10.1 to backport e8425f9e52c9df0ce0fbf122adff3ef6930f9961 could be enough. We've already backported that commit in Arch and I can confirm that it fixes the crash.
Comment 13 Jarosław Staniek 2018-03-02 12:32:05 UTC
That's very positive, Antonio, kudos for way how it's solved in Arch!
Comment 14 Jarosław Staniek 2018-03-05 18:36:03 UTC
Git commit fdc64d6ffd5209150d2a781a9661e6e8335b1db6 by Jaroslaw Staniek.
Committed on 05/03/2018 at 18:35.
Pushed by staniek into branch 'master'.

Add MainWindow/GlobalSearchBoxEnabled (bool) option that controls display of the global search box

Summary:
This allows to disable the box if it crashes for reason unrelated to KEXI (as in bug #390794).

{F5738334}
FIXED-IN:3.1.0

Test Plan:
Set:

```
[MainWindow]
GlobalSearchBoxEnabled=false
```
in kexirc and start KEXI.

Expected: the search box is not created on KEXI startup.

Reviewers: Kexi-Devel-list, piggz

Reviewed By: piggz

Tags: #kexi

Differential Revision: https://phabricator.kde.org/D11000

M  +5    -0    src/doc/dev/settings.txt
M  +34   -9    src/main/KexiMainWindow_p.cpp
M  +6    -2    src/main/KexiMainWindow_p.h

https://commits.kde.org/kexi/fdc64d6ffd5209150d2a781a9661e6e8335b1db6
Comment 15 Jarosław Staniek 2018-03-05 18:37:11 UTC
@Antonio Workaround added above:
https://bugs.kde.org/show_bug.cgi?id=390794#c14

Closing.
Comment 16 Jarosław Staniek 2018-03-05 18:56:53 UTC
Git commit 35b706fce35a2c5ef97c53ac2b763604df5da7d2 by Jaroslaw Staniek.
Committed on 05/03/2018 at 18:49.
Pushed by staniek into branch '3.1'.

Add MainWindow/GlobalSearchBoxEnabled (bool) option that controls display of the global search box

Summary:
This allows to disable the box if it crashes for reason unrelated to KEXI (as in bug #390794).

{F5738334}
FIXED-IN:3.1.0

Test Plan:
Set:

```
[MainWindow]
GlobalSearchBoxEnabled=false
```
in kexirc and start KEXI.

Expected: the search box is not created on KEXI startup.

Reviewers: Kexi-Devel-list, piggz

Reviewed By: piggz

Tags: #kexi

Differential Revision: https://phabricator.kde.org/D11000

M  +5    -0    src/doc/dev/settings.txt
M  +34   -9    src/main/KexiMainWindow_p.cpp
M  +6    -2    src/main/KexiMainWindow_p.h

https://commits.kde.org/kexi/35b706fce35a2c5ef97c53ac2b763604df5da7d2