Bug 273151

Summary: Kexi crashes when clicking on data while creating query
Product: [Applications] KEXI Reporter: Dirk Sarpe <dns_hmpf>
Component: QueriesAssignee: Jarosław Staniek <staniek>
Status: CLOSED FIXED    
Severity: crash CC: cramjaco, dns_hmpf, drew, gjustin, jan, johnk, kde, ks.dagi, martin.kampas+kdebugs, olivimo, robert.jean.leleu, rod260185, tiago.santos.pinto
Priority: NOR    
Version: 2.3.3 (KOffice 2.3.3)   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 2.3.4 (KOffice 2.3.4) and Calligra 2.4.0 alpha
Attachments: database for crash report
New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi

Description Dirk Sarpe 2011-05-12 21:50:22 UTC
Application: kexi (2.3.3 (KOffice 2.3.3))
KDE Platform Version: 4.6.3 (4.6.3)
Qt Version: 4.7.2
Operating System: Linux 2.6.39-020639rc3-generic x86_64
Distribution: Ubuntu 11.04

-- Information about the crash:
- What I was doing when the application crashed:

I was following the kexi handbook (german version) to the point in the query creation where one is asked to switch from query design to query data. Result kexi crashes.

Long version:
created a table personen with the fields: Id, Name, Nachname, Straße, Hausnummer, Stadt. All fields text except Hausnummer which is an integer.
created a table telefon_nummern with the fields: Id, Person, Telefon. All fields text.

I tried to create a query, connection personen.Id with telefon_nummern.person, and adding the other fields (except telefon_nummern.Id) to the Query Columns. I clicked on Data, kexi crashed.

The crash can be reproduced every time.

-- Backtrace:
Application: Kexi (kexi), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f87ed88c7a0 (LWP 8079))]

Thread 3 (Thread 0x7f87d4bba700 (LWP 8083)):
#0  0x00007f87ec057f03 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f87e8a39104 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f87e8a39639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f87ec499446 in QEventDispatcherGlib::processEvents (this=0x22a46c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007f87ec46d882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f87ec46dabc in QEventLoop::exec (this=0x7f87d4bb9db0, flags=...) at kernel/qeventloop.cpp:201
#6  0x00007f87ec384924 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:492
#7  0x00007f87ec44fc2f in QInotifyFileSystemWatcherEngine::run (this=0x2282e70) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f87ec387175 in QThreadPrivate::start (arg=0x2282e70) at thread/qthread_unix.cpp:320
#9  0x00007f87e8f04d8c in start_thread (arg=0x7f87d4bba700) at pthread_create.c:304
#10 0x00007f87ec06504d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f87cdbad700 (LWP 8087)):
#0  0x00007f87ec057f03 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f87e8a39104 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f87e8a39639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f87ec499446 in QEventDispatcherGlib::processEvents (this=0x22751d0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007f87ec46d882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f87ec46dabc in QEventLoop::exec (this=0x7f87cdbacdb0, flags=...) at kernel/qeventloop.cpp:201
#6  0x00007f87ec384924 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:492
#7  0x00007f87ec44fc2f in QInotifyFileSystemWatcherEngine::run (this=0x2505570) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f87ec387175 in QThreadPrivate::start (arg=0x2505570) at thread/qthread_unix.cpp:320
#9  0x00007f87e8f04d8c in start_thread (arg=0x7f87cdbad700) at pthread_create.c:304
#10 0x00007f87ec06504d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f87ed88c7a0 (LWP 8079)):
[KCrash Handler]
#6  end (this=0x2974b00) at /usr/include/qt4/QtCore/qvector.h:238
#7  qDeleteAll<QVector<KexiDB::QueryColumnInfo*> > (this=0x2974b00) at /usr/include/qt4/QtCore/qalgorithms.h:330
#8  KexiDB::QuerySchemaPrivate::clearCachedData (this=0x2974b00) at ../../../kexi/kexidb/queryschema.cpp:173
#9  0x00007f87ebd3fa0a in KexiDB::QuerySchema::insertField (this=0x296cf40, position=1, field=0x2933200, bindToTable=-1, visible=true) at ../../../kexi/kexidb/queryschema.cpp:687
#10 0x00007f87ccabf71a in KexiQueryDesignerGuiEditor::buildSchema (this=0x275b190, errMsg=0x7fff9e45db30) at ../../../../kexi/plugins/queries/kexiquerydesignerguieditor.cpp:491
#11 0x00007f87ccac0f81 in KexiQueryDesignerGuiEditor::beforeSwitchTo (this=0x275b190, mode=<value optimized out>, dontStore=<value optimized out>) at ../../../../kexi/plugins/queries/kexiquerydesignerguieditor.cpp:606
#12 0x00007f87eba8b257 in KexiWindow::switchToViewMode (this=0x27599a0, newViewMode=Kexi::DataViewMode, staticObjectArgs=0x0, proposeOpeningInTextViewModeBecauseOfProblems=@0x7fff9e45de1f) at ../../../kexi/core/KexiWindow.cpp:607
#13 0x00007f87eba8b8d4 in KexiWindow::switchToViewMode (this=<value optimized out>, newViewMode=<value optimized out>) at ../../../kexi/core/KexiWindow.cpp:743
#14 0x00007f87ed48694f in KexiMainWindow::switchToViewMode (this=0x2594370, window=<value optimized out>, viewMode=Kexi::DataViewMode) at ../../../kexi/main/KexiMainWindow.cpp:3534
#15 0x00007f87eba894a6 in KexiWindow::switchToViewModeInternal (this=0x27599a0, newViewMode=Kexi::DataViewMode) at ../../../kexi/core/KexiWindow.cpp:733
#16 0x00007f87eba8d3f9 in KexiView::slotSwitchToViewModeInternal (this=0x275b190, mode=Kexi::DataViewMode) at ../../../kexi/core/KexiView.cpp:643
#17 0x00007f87eba8d6e4 in KexiView::qt_metacall (this=0x275b190, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff9e45e030) at ./KexiView.moc:98
#18 0x00007f87ccac5be6 in KexiQueryDesignerGuiEditor::qt_metacall (this=0x275b190, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff9e45e030) at ./kexiquerydesignerguieditor.moc:123
#19 0x00007f87ec4835f8 in QMetaObject::activate (sender=0x26b8370, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff9e45e030) at kernel/qobject.cpp:3287
#20 0x00007f87ecfd2292 in QAbstractButton::toggled (this=<value optimized out>, _t1=true) at .moc/release-shared/moc_qabstractbutton.cpp:213
#21 0x00007f87ecd1d0de in QAbstractButton::setChecked (this=0x26b8370, checked=true) at widgets/qabstractbutton.cpp:766
#22 0x00007f87ecd1cd7a in QAbstractButtonPrivate::click (this=0x275d570) at widgets/qabstractbutton.cpp:528
#23 0x00007f87ecd1d02c in QAbstractButton::mouseReleaseEvent (this=0x26b8370, e=0x7fff9e45e980) at widgets/qabstractbutton.cpp:1121
#24 0x00007f87ecdd92ca in QToolButton::mouseReleaseEvent (this=<value optimized out>, e=<value optimized out>) at widgets/qtoolbutton.cpp:721
#25 0x00007f87ec9adcb8 in QWidget::event (this=0x26b8370, event=0x7fff9e45e980) at kernel/qwidget.cpp:8259
#26 0x00007f87ec95c9e4 in QApplicationPrivate::notify_helper (this=0x1a0f4b0, receiver=0x26b8370, e=0x7fff9e45e980) at kernel/qapplication.cpp:4462
#27 0x00007f87ec961db3 in QApplication::notify (this=<value optimized out>, receiver=0x26b8370, e=0x7fff9e45e980) at kernel/qapplication.cpp:4023
#28 0x00007f87e9d65196 in KApplication::notify (this=0x1a06090, receiver=0x26b8370, event=0x7fff9e45e980) at ../../kdeui/kernel/kapplication.cpp:311
#29 0x00007f87ec46e49c in QCoreApplication::notifyInternal (this=0x1a06090, receiver=0x26b8370, event=0x7fff9e45e980) at kernel/qcoreapplication.cpp:731
#30 0x00007f87ec95da0d in sendEvent (receiver=0x26b8370, event=0x7fff9e45e980, alienWidget=0x26b8370, nativeWidget=0x25f0680, buttonDown=0x7f87ed43d218, lastMouseReceiver=..., spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#31 QApplicationPrivate::sendMouseEvent (receiver=0x26b8370, event=0x7fff9e45e980, alienWidget=0x26b8370, nativeWidget=0x25f0680, buttonDown=0x7f87ed43d218, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3122
#32 0x00007f87ec9dd600 in QETWidget::translateMouseEvent (this=0x25f0680, event=<value optimized out>) at kernel/qapplication_x11.cpp:4556
#33 0x00007f87ec9dc04a in QApplication::x11ProcessEvent (this=0x1a06090, event=0x7fff9e45f2d0) at kernel/qapplication_x11.cpp:3678
#34 0x00007f87eca04162 in x11EventSourceDispatch (s=0x1a13f10, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#35 0x00007f87e8a38bcd in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007f87e8a393a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007f87e8a39639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007f87ec4993ef in QEventDispatcherGlib::processEvents (this=0x19b64e0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#39 0x00007f87eca03dfe in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#40 0x00007f87ec46d882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#41 0x00007f87ec46dabc in QEventLoop::exec (this=0x7fff9e45f5d0, flags=...) at kernel/qeventloop.cpp:201
#42 0x00007f87ec471ecb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#43 0x0000000000400899 in main (argc=<value optimized out>, argv=<value optimized out>) at ../../kexi/main.cpp:34

Reported using DrKonqi
Comment 1 Jarosław Staniek 2011-05-12 22:13:38 UTC
Hello Dirk, thnak you for the report. Could you please attach a test database with the query you describe? To do so you can use 'Add an attachment' link below.

Thanks.
Comment 2 Dirk Sarpe 2011-05-12 22:46:23 UTC
Created attachment 59944 [details]
database for crash report
Comment 3 Dirk Sarpe 2011-05-13 12:54:10 UTC
I just recognize that you asked for the database with the query. However that is not possible, since kexi crashes during the creation of the query. So I played a bit with the query dialog. The crash also occurs when I click on the SQL or Save button. The query looks like this:
http://wstaw.org/m/2011/05/13/kexi-crash.png

The crash does not occur if I only add one column to the query, but as soon as I have several columns clicking one of the Data, SQL or Save buttons crashes kexi.
Comment 4 robert leleu 2011-05-20 23:57:00 UTC
Created attachment 60192 [details]
New crash information added by DrKonqi

kexi (2.3.3 (KOffice 2.3.3)) on KDE Platform 4.6.2 (4.6.2) using Qt 4.7.2

- What I was doing when the application crashed:
switching from conception to showing data of a new query

-- Backtrace (Reduced):
#7  end (this=0x995d668) at /usr/include/qt4/QtCore/qvector.h:238
#8  qDeleteAll<QVector<KexiDB::QueryColumnInfo*> > (this=0x995d668) at /usr/include/qt4/QtCore/qalgorithms.h:330
#9  KexiDB::QuerySchemaPrivate::clearCachedData (this=0x995d668) at ../../../kexi/kexidb/queryschema.cpp:173
#10 0xb68f334c in KexiDB::QuerySchema::insertField (this=0x995ce90, position=1, field=0x988ec90, bindToTable=-1, visible=true) at ../../../kexi/kexidb/queryschema.cpp:687
#11 0xb68f40bb in KexiDB::QuerySchema::insertField (this=0x995ce90, position=1, field=0x988ec90, visible=true) at ../../../kexi/kexidb/queryschema.cpp:657
Comment 5 Jarosław Staniek 2011-05-21 00:05:28 UTC
*** Bug 273344 has been marked as a duplicate of this bug. ***
Comment 6 Jan ten Haaken 2011-05-23 11:08:58 UTC
Created attachment 60239 [details]
New crash information added by DrKonqi

kexi (2.3.3 (KOffice 2.3.3)) on KDE Platform 4.6.2 (4.6.2) using Qt 4.7.2

- What I was doing when the application crashed:

I created a query using a table I had defined shortly before. I used a PostgreSQL database (version 8.4). Kexi crashed when I tried to save the query definition. I had not yet looked at the data view.

-- Backtrace (Reduced):
#6  end (this=0x1c14f30) at /usr/include/qt4/QtCore/qvector.h:238
#7  qDeleteAll<QVector<KexiDB::QueryColumnInfo*> > (this=0x1c14f30) at /usr/include/qt4/QtCore/qalgorithms.h:330
#8  KexiDB::QuerySchemaPrivate::clearCachedData (this=0x1c14f30) at ../../../kexi/kexidb/queryschema.cpp:173
#9  0x00007f4793deba0a in KexiDB::QuerySchema::insertField (this=0x26daef0, position=1, field=0x24eaa10, bindToTable=-1, visible=true) at ../../../kexi/kexidb/queryschema.cpp:687
#10 0x00007f476c6fc71a in KexiQueryDesignerGuiEditor::buildSchema (this=0x2623340, errMsg=0x7fff56795500) at ../../../../kexi/plugins/queries/kexiquerydesignerguieditor.cpp:491
Comment 7 John Kawakami 2011-05-28 17:58:35 UTC
Created attachment 60413 [details]
New crash information added by DrKonqi

kexi (2.3.3 (KOffice 2.3.3)) on KDE Platform 4.6.2 (4.6.2) using Qt 4.7.2

- What I was doing when the application crashed:

I created a query with the graphical query builder.  Then, it was saved.  On clicking the SQL button, the program crashed.

-- Backtrace (Reduced):
#6  end (this=0x2b706b0) at /usr/include/qt4/QtCore/qvector.h:238
#7  qDeleteAll<QVector<KexiDB::QueryColumnInfo*> > (this=0x2b706b0) at /usr/include/qt4/QtCore/qalgorithms.h:330
#8  KexiDB::QuerySchemaPrivate::clearCachedData (this=0x2b706b0) at ../../../kexi/kexidb/queryschema.cpp:173
#9  0x00007fd744ca9d01 in KexiDB::QuerySchemaPrivate::clear (this=0x2b706b0) at ../../../kexi/kexidb/queryschema.cpp:158
#10 0x00007fd71e631bb4 in KexiQueryDesignerGuiEditor::buildSchema (this=0x2813800, errMsg=0x0) at ../../../../kexi/plugins/queries/kexiquerydesignerguieditor.cpp:383
Comment 8 Dagi 2011-05-29 13:49:52 UTC
Created attachment 60433 [details]
New crash information added by DrKonqi

kexi (2.3.3 (KOffice 2.3.3)) on KDE Platform 4.6.3 (4.6.3) using Qt 4.7.2

- What I was doing when the application crashed:

I was creating a quary using 4 tabells.
After setting the relations i dubbeld clikt on the etc feilds i wanted in the quary.
Once i hit save kexi crashes instantly, evry time.

-- Backtrace (Reduced):
#6  end (this=0x30887c0) at /usr/include/qt4/QtCore/qvector.h:238
#7  qDeleteAll<QVector<KexiDB::QueryColumnInfo*> > (this=0x30887c0) at /usr/include/qt4/QtCore/qalgorithms.h:330
#8  KexiDB::QuerySchemaPrivate::clearCachedData (this=0x30887c0) at ../../../kexi/kexidb/queryschema.cpp:173
#9  0x00007fccb6259a0a in KexiDB::QuerySchema::insertField (this=0x3082d60, position=1, field=0x33c0070, bindToTable=-1, visible=true) at ../../../kexi/kexidb/queryschema.cpp:687
#10 0x00007fcc98d1571a in KexiQueryDesignerGuiEditor::buildSchema (this=0x33b4450, errMsg=0x0) at ../../../../kexi/plugins/queries/kexiquerydesignerguieditor.cpp:491
Comment 9 Jarosław Staniek 2011-07-17 22:05:55 UTC
*** Bug 277682 has been marked as a duplicate of this bug. ***
Comment 10 Jarosław Staniek 2011-07-17 22:08:22 UTC
*** Bug 277979 has been marked as a duplicate of this bug. ***
Comment 11 Jarosław Staniek 2011-07-17 22:09:26 UTC
*** Bug 266540 has been marked as a duplicate of this bug. ***
Comment 12 Martin Kampas 2011-09-09 15:04:00 UTC
Created attachment 63532 [details]
New crash information added by DrKonqi

kexi (2.3.3 (KOffice 2.3.3)) on KDE Platform 4.7.00 (4.7.0) using Qt 4.7.2

- What I was doing when the application crashed:

After editing SQL query I left the SQL (text) mode. Trying to get back to the SQL mode, it crashed.

-- Backtrace (Reduced):
#7  0x41773163 in KexiDB::QuerySchemaPrivate::clearCachedData() () from /usr/lib/libkexidb.so.8
#8  0x41773bc8 in KexiDB::QuerySchemaPrivate::clear() () from /usr/lib/libkexidb.so.8
#9  0xb54f1dd5 in KexiQueryPart::TempData::clearQuery (this=0x87f9d18) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3/kexi/plugins/queries/kexiquerypart.cpp:241
#10 0xb55029fc in KexiQueryDesignerGuiEditor::buildSchema (this=0x9c99a38, errMsg=0x0) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3/kexi/plugins/queries/kexiquerydesignerguieditor.cpp:383
#11 0xb550543e in KexiQueryDesignerGuiEditor::beforeSwitchTo (this=0x9c99a38, mode=Kexi::TextViewMode, dontStore=@0xbfec9b2e) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3/kexi/plugins/queries/kexiquerydesignerguieditor.cpp:616
Comment 13 Jarosław Staniek 2011-12-02 23:30:23 UTC
Fixed on Mon Mar 28 as follows:

commit b6a0cd155b39108b1fbec629692136e8640ff04f
Author: Jaroslaw Staniek <staniek@kde.org>

    KexiDB: fix possible crash when handling queries with lookup columns
 
    *backported to 2.3.x


But KOffice 2.3.4 was not released so you may want to download it using GIT and build. Any Calligra version contains it already.
Comment 14 Jarosław Staniek 2011-12-02 23:33:12 UTC
*** Bug 287863 has been marked as a duplicate of this bug. ***
Comment 15 Jarosław Staniek 2011-12-22 07:51:09 UTC
*** Bug 289560 has been marked as a duplicate of this bug. ***
Comment 16 gjustin 2012-02-08 02:01:47 UTC
Created attachment 68607 [details]
New crash information added by DrKonqi

kexi (2.3.3 (KOffice 2.3.3)) on KDE Platform 4.7.1 (4.7.1) using Qt 4.7.4

- What I was doing when the application crashed:

Following guide on http://docs.kde.org/development/en/calligra/kexi/designing-database-queries.html 
Step 5 caused the crash.
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"
2.6.35-22-generic kernel,  
||/ Name             Version                           Description
+++-===========================================================================
ii  kexi                  1:2.3.3-0ubuntu6      integrated database environment for the KDE Office Suite

-- Backtrace (Reduced):
#7  end (this=0x9a81418) at /usr/include/qt4/QtCore/qvector.h:238
#8  qDeleteAll<QVector<KexiDB::QueryColumnInfo*> > (this=0x9a81418) at /usr/include/qt4/QtCore/qalgorithms.h:330
#9  KexiDB::QuerySchemaPrivate::clearCachedData (this=0x9a81418) at ../../../kexi/kexidb/queryschema.cpp:173
#10 0x00199e75 in KexiDB::QuerySchema::insertField (this=0x9a8b630, position=1, field=0x998d6b0, bindToTable=-1, visible=true) at ../../../kexi/kexidb/queryschema.cpp:687
#11 0x0019aacc in KexiDB::QuerySchema::insertField (this=0x9a8b630, position=1, field=0x998d6b0, visible=true) at ../../../kexi/kexidb/queryschema.cpp:657
Comment 17 Jarosław Staniek 2014-02-12 12:01:43 UTC
*** Bug 294034 has been marked as a duplicate of this bug. ***