Bug 315288

Summary: Kexi crashes when removing a Database Connection
Product: [Applications] KEXI Reporter: Drew Ruggles <drew>
Component: GeneralAssignee: Radosław Wicik <radoslaw>
Status: CLOSED FIXED    
Severity: crash CC: drew, staniek
Priority: NOR Keywords: junior-jobs
Version: 2.8.3   
Target Milestone: 2.8.4   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 2.8.4

Description Drew Ruggles 2013-02-16 20:21:50 UTC
Application: kexi (2.4.0 (Calligra 2.4.0))
KDE Platform Version: 4.8.5 (4.8.5)
Qt Version: 4.8.1
Operating System: Linux 3.2.0-37-generic i686
Distribution: Ubuntu 12.04.1 LTS

-- Information about the crash:
- What I was doing when the application crashed:
1. Start Kexi
2. New...
3. New Project: Blank database
4. Storage Method: Server
5. Database Connection
5.1. Add...
5.1.1. without entering any data (also works with entering data, but just getting to the crash as quickly as possible), click [ Add ]
5.2. Highlight new Database Connection, in this case, "localhost"
5.3. Click [ Remove ]
5.3.1. Warning-Kexi dialog: "Do you want to remove database connection "localhost" from the list of available connections?"
5.3.2. Click [ Delete ]
6. Kexi will crash

FYI, I was trying to create a JDBC connection to an H2 database. Still haven't figured that out, yet.

Drew

The crash can be reproduced every time.

-- Backtrace:
Application: Kexi (kexi), signal: Segmentation fault
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0xb76ec740 (LWP 1936))]

Thread 2 (Thread 0xb1bceb40 (LWP 1964)):
#0  0x0713adcd in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0x004a7315 in do_gettime (frac=0xb1bcdfb0, sec=0xb1bcdfa8) at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0x00591226 in QTimerInfoList::updateCurrentTime (this=0xb1202274) at kernel/qeventdispatcher_unix.cpp:343
#4  0x0059157a in QTimerInfoList::timerWait (this=0xb1202274, tm=...) at kernel/qeventdispatcher_unix.cpp:450
#5  0x0058fe23 in timerSourcePrepareHelper (src=<optimized out>, timeout=0xb1bce0bc) at kernel/qeventdispatcher_glib.cpp:136
#6  0x0058febd in timerSourcePrepare (source=0xb1202240, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#7  0x04236872 in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0x04236faf in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0x04237201 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0x005908e7 in QEventDispatcherGlib::processEvents (this=0xb1200468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#11 0x0055c50d in QEventLoop::processEvents (this=0xb1bce240, flags=...) at kernel/qeventloop.cpp:149
#12 0x0055c7a9 in QEventLoop::exec (this=0xb1bce240, flags=...) at kernel/qeventloop.cpp:204
#13 0x0044594c in QThread::exec (this=0x8b844e8) at thread/qthread.cpp:501
#14 0x00539b5d in QInotifyFileSystemWatcherEngine::run (this=0x8b844e8) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x00448de0 in QThreadPrivate::start (arg=0x8b844e8) at thread/qthread_unix.cpp:298
#16 0x00eced4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#17 0x00bb2d3e in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 1 (Thread 0xb76ec740 (LWP 1936)):
[KCrash Handler]
#7  size (this=0x8e23000) at ../../include/QtCore/../../src/corelib/tools/qlist.h:98
#8  QList<QTreeWidgetItem*>::indexOf (this=0x18, t=@0xbf8300b4: 0x8e724c0, from=0) at ../../include/QtCore/../../src/corelib/tools/qlist.h:850
#9  0x01686205 in QTreeWidgetItem::removeChild (this=0x0, child=0x8e724c0) at itemviews/qtreewidget.cpp:1941
#10 0x00cc3252 in KexiConnectionSelectorWidget::slotRemoteRemoveBtnClicked() () from /usr/lib/libkexiextendedwidgets.so.9
#11 0x00c98250 in ?? () from /usr/lib/libkexiextendedwidgets.so.9
#12 0x005746b1 in QMetaObject::activate (sender=0x8df4620, m=0x19d37c8, local_signal_index=2, argv=0xbf830228) at kernel/qobject.cpp:3547
#13 0x0177f97d in QAbstractButton::clicked (this=0x8df4620, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:220
#14 0x0147362d in QAbstractButtonPrivate::emitClicked (this=0x8df4638) at widgets/qabstractbutton.cpp:548
#15 0x01474c9b in QAbstractButtonPrivate::click (this=0x8df4638) at widgets/qabstractbutton.cpp:541
#16 0x01474f56 in QAbstractButton::mouseReleaseEvent (this=0x8df4620, e=0xbf8308f4) at widgets/qabstractbutton.cpp:1123
#17 0x010a21ac in QWidget::event (this=0x8df4620, event=0xbf8308f4) at kernel/qwidget.cpp:8362
#18 0x014741f9 in QAbstractButton::event (this=0x8df4620, e=0xbf8308f4) at widgets/qabstractbutton.cpp:1082
#19 0x01517768 in QPushButton::event (this=0x8df4620, e=0xbf8308f4) at widgets/qpushbutton.cpp:683
#20 0x01047ed4 in notify_helper (e=0xbf8308f4, receiver=0x8df4620, this=0x852f970) at kernel/qapplication.cpp:4559
#21 QApplicationPrivate::notify_helper (this=0x852f970, receiver=0x8df4620, e=0xbf8308f4) at kernel/qapplication.cpp:4531
#22 0x0104e024 in QApplication::notify (this=0x852f970, receiver=0x8df4620, e=0xbf8308f4) at kernel/qapplication.cpp:4102
#23 0x01bcce01 in KApplication::notify (this=0x8525838, receiver=0x8df4620, event=0xbf8308f4) at ../../kdeui/kernel/kapplication.cpp:311
#24 0x0055d97e in QCoreApplication::notifyInternal (this=0x8525838, receiver=0x8df4620, event=0xbf8308f4) at kernel/qcoreapplication.cpp:876
#25 0x01048e95 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#26 QApplicationPrivate::sendMouseEvent (receiver=0x8df4620, event=0xbf8308f4, alienWidget=0x8df4620, nativeWidget=0x8e02c90, buttonDown=0x19dccf4, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3170
#27 0x010d5074 in QETWidget::translateMouseEvent (this=0x8e02c90, event=0xbf830dac) at kernel/qapplication_x11.cpp:4617
#28 0x010d3c0d in QApplication::x11ProcessEvent (this=0x8525838, event=0xbf830dac) at kernel/qapplication_x11.cpp:3732
#29 0x01100eac in x11EventSourceDispatch (s=0x852ea08, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#30 0x04236d86 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#31 0x04237125 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#32 0x04237201 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#33 0x00590887 in QEventDispatcherGlib::processEvents (this=0x84ddea0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#34 0x01100aaa in QGuiEventDispatcherGlib::processEvents (this=0x84ddea0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#35 0x0055c50d in QEventLoop::processEvents (this=0xbf8310a4, flags=...) at kernel/qeventloop.cpp:149
#36 0x0055c7a9 in QEventLoop::exec (this=0xbf8310a4, flags=...) at kernel/qeventloop.cpp:204
#37 0x00561eba in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#38 0x01045a74 in QApplication::exec () at kernel/qapplication.cpp:3820
#39 0x080486cd in ?? ()
#40 0x00add4d3 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
#41 0x08048725 in _start ()

Reported using DrKonqi
Comment 1 Jarosław Staniek 2014-05-21 19:39:01 UTC
Confirmed. I am sorry for terrible delay. Extra bug is that two entries got selected after adding a new entry. 
Selecting one entry does not let us to avoid the crash.
Comment 2 Radosław Wicik 2014-06-10 22:10:12 UTC
Git commit 9e1b53cad5a878dbf919a7f888516b76a1d314be by Radoslaw Wicik.
Committed on 05/06/2014 at 22:58.
Pushed by wicik into branch 'master'.

Fix crash when removing a Database Connection.
FIXED-IN:2.8.4
REVIEW:118582

M  +3    -2    kexi/widget/KexiConnectionSelectorWidget.cpp

http://commits.kde.org/calligra/9e1b53cad5a878dbf919a7f888516b76a1d314be
Comment 3 Radosław Wicik 2014-06-10 22:14:34 UTC
Git commit d51425389a797e10b44ab54f71f448b29f22e981 by Radoslaw Wicik.
Committed on 05/06/2014 at 22:58.
Pushed by wicik into branch 'calligra/2.8'.

Fix crash when removing a Database Connection.
FIXED-IN:2.8.4
REVIEW:118582

M  +3    -2    kexi/widget/KexiConnectionSelectorWidget.cpp

http://commits.kde.org/calligra/d51425389a797e10b44ab54f71f448b29f22e981
Comment 4 Radosław Wicik 2014-06-14 17:36:18 UTC
Git commit 045212d0660b689906fb268102e396732072ca0e by Radoslaw Wicik.
Committed on 11/06/2014 at 18:43.
Pushed by wicik into branch 'master'.

Kexi - Clear selection after adding new connection.

M  +1    -0    kexi/widget/KexiConnectionSelectorWidget.cpp

http://commits.kde.org/calligra/045212d0660b689906fb268102e396732072ca0e
Comment 5 Radosław Wicik 2014-06-14 17:47:19 UTC
Git commit b8a9832a6da987314a53d990fa4c4580f71ff622 by Radoslaw Wicik.
Committed on 11/06/2014 at 18:43.
Pushed by wicik into branch 'calligra/2.8'.

Kexi - Clear selection after adding new connection.

M  +1    -1    kexi/widget/KexiConnectionSelectorWidget.cpp

http://commits.kde.org/calligra/b8a9832a6da987314a53d990fa4c4580f71ff622