Bug 281737 - Crash when settting report's data source to query
Summary: Crash when settting report's data source to query
Status: CLOSED FIXED
Alias: None
Product: KEXI
Classification: Applications
Component: Reports and Printouts (show other bugs)
Version: 2.3.3 (KOffice 2.3.3)
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Jarosław Staniek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-10 07:47 UTC by Martin Kampas
Modified: 2012-08-11 11:41 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: Kexi 2.4.0 (Calligra 2.4.0)


Attachments
Example DB file to crash Kexi when setting data to a label in a report (10.00 KB, application/octet-stream)
2012-02-12 08:21 UTC, Martin Kampas
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Kampas 2011-09-10 07:47:56 UTC
Application: kexi (2.3.3 (KOffice 2.3.3))
KDE Platform Version: 4.7.00 (4.7.0) (Compiled from sources)
Qt Version: 4.7.2
Operating System: Linux 2.6.38-gentoo-r6 i686
Distribution: "Gentoo Base System release 2.0.3"

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

I have a kexi project with one table and one view. I have also created one repport and now I am trying to add something into it:

1) add a label and select it
2) in property editor select source type "internal" and select the view as a source
3) click "set data" - nothing happen
4) click "set data" again - crash

The crash does not seem to be reproducible.

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

Thread 3 (Thread 0xb61a5b70 (LWP 31599)):
#0  0x477e2c41 in pthread_mutex_unlock (mutex=0x939a68c) at forward.c:184
#1  0x4e6ddc8b in g_main_context_acquire (context=<value optimized out>) at gmain.c:2542
#2  0x4e6df4af in g_main_context_iterate (context=0x939a688, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3036
#3  0x4e6dfc15 in g_main_context_iteration (context=0x939a688, may_block=1) at gmain.c:3155
#4  0x4e9f6457 in QEventDispatcherGlib::processEvents (this=0x939a380, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#5  0x4e9c7dea in QEventLoop::processEvents (this=0xb61a51d0, flags=...) at kernel/qeventloop.cpp:149
#6  0x4e9c809a in QEventLoop::exec (this=0xb61a51d0, flags=...) at kernel/qeventloop.cpp:201
#7  0x4e8cfa73 in QThread::exec (this=0x9399bf8) at thread/qthread.cpp:492
#8  0x4e9a93cc in QInotifyFileSystemWatcherEngine::run (this=0x9399bf8) at io/qfilesystemwatcher_inotify.cpp:248
#9  0x4e8d2573 in QThreadPrivate::start (arg=0x9399bf8) at thread/qthread_unix.cpp:320
#10 0x421eb1e7 in ?? () from //usr/lib/opengl/nvidia/lib/libGL.so.1
#11 0x477d538e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 2 (Thread 0xb4179b70 (LWP 31601)):
#0  0xb78ad424 in __kernel_vsyscall ()
#1  0x4789f5bc in pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x477e2a1e in __pthread_cond_wait (cond=0x44cf6f70, mutex=0x44cf6f58) at forward.c:139
#3  0x44bdcba7 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x44cf1e80) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#4  0x44bdcbf2 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0x44cf1e80) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#5  0x421eb1e7 in ?? () from //usr/lib/opengl/nvidia/lib/libGL.so.1
#6  0x477d538e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 1 (Thread 0xb7867720 (LWP 31598)):
[KCrash Handler]
#7  ref (this=0x939f830) at /usr/include/qt4/QtCore/qatomic_i386.h:120
#8  QString (this=0x939f830) at /usr/include/qt4/QtCore/qstring.h:729
#9  KexiDB::QuerySchema::statement (this=0x939f830) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3/kexi/kexidb/queryschema.cpp:1122
#10 0x41735ef6 in KexiDB::Connection::selectStatement (this=0x972ddc8, querySchema=..., params=..., options=...) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3/kexi/kexidb/connection.cpp:1204
#11 0xb5345253 in selectStatement (this=0x9b67900) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3/kexi/kexidb/connection.h:715
#12 KexiDBReportData::getSchema (this=0x9b67900) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3/kexi/plugins/reports/kexidbreportdata.cpp:131
#13 0xb53496a2 in KexiSourceSelector::sourceData (this=0x9a49f80) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3/kexi/plugins/reports/kexisourceselector.cpp:166
#14 0xb5349e53 in KexiSourceSelector::setDataClicked (this=0x9a49f80) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3/kexi/plugins/reports/kexisourceselector.cpp:182
#15 0xb533d038 in KexiSourceSelector::qt_metacall (this=0x9a49f80, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfd8ae68) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3_build/kexi/plugins/reports/moc_kexisourceselector.cpp:77
#16 0x4e9cf3eb in QMetaObject::metacall (object=0x9a49f80, cl=QMetaObject::InvokeMetaMethod, idx=28, argv=0xbfd8ae68) at kernel/qmetaobject.cpp:237
#17 0x4e9de6e7 in QMetaObject::activate (sender=0x9b191e8, m=0x44335a04, local_signal_index=2, argv=0xbfd8ae68) at kernel/qobject.cpp:3278
#18 0x440e31da in QAbstractButton::clicked (this=0x9b191e8, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#19 0x43df05da in QAbstractButtonPrivate::emitClicked (this=0x98f4a90) at widgets/qabstractbutton.cpp:546
#20 0x43df1e85 in QAbstractButtonPrivate::click (this=0x98f4a90) at widgets/qabstractbutton.cpp:539
#21 0x43df213e in QAbstractButton::mouseReleaseEvent (this=0x9b191e8, e=0xbfd8b698) at widgets/qabstractbutton.cpp:1121
#22 0x43a69e2f in QWidget::event (this=0x9b191e8, event=0xbfd8b698) at kernel/qwidget.cpp:8259
#23 0x43df118f in QAbstractButton::event (this=0x9b191e8, e=0xbfd8b698) at widgets/qabstractbutton.cpp:1080
#24 0x43e91203 in QPushButton::event (this=0x9b191e8, e=0xbfd8b698) at widgets/qpushbutton.cpp:683
#25 0x43a109cc in QApplicationPrivate::notify_helper (this=0x8ed7808, receiver=0x9b191e8, e=0xbfd8b698) at kernel/qapplication.cpp:4462
#26 0x43a1608d in QApplication::notify (this=0x8ed1150, receiver=0x9b191e8, e=0xbfd8b698) at kernel/qapplication.cpp:4023
#27 0x419c869b in KApplication::notify (this=0x8ed1150, receiver=0x9b191e8, event=0xbfd8b698) at /var/tmp/portage/kde-base/kdelibs-4.7.0-r1/work/kdelibs-4.7.0/kdeui/kernel/kapplication.cpp:311
#28 0x4e9c8c43 in QCoreApplication::notifyInternal (this=0x8ed1150, receiver=0x9b191e8, event=0xbfd8b698) at kernel/qcoreapplication.cpp:731
#29 0x43a11958 in sendSpontaneousEvent (receiver=0x9b191e8, event=0xbfd8b698, alienWidget=0x9b191e8, nativeWidget=0x97171f8, buttonDown=0x4433ecc0, lastMouseReceiver=..., spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#30 QApplicationPrivate::sendMouseEvent (receiver=0x9b191e8, event=0xbfd8b698, alienWidget=0x9b191e8, nativeWidget=0x97171f8, buttonDown=0x4433ecc0, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3120
#31 0x43a9a7ec in QETWidget::translateMouseEvent (this=0x97171f8, event=0xbfd8bae0) at kernel/qapplication_x11.cpp:4461
#32 0x43a9935f in QApplication::x11ProcessEvent (this=0x8ed1150, event=0xbfd8bae0) at kernel/qapplication_x11.cpp:3587
#33 0x43ac3fb2 in x11EventSourceDispatch (s=0x8eda5e8, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#34 0x4e6df172 in g_main_dispatch (context=0x8ed90f0) at gmain.c:2441
#35 g_main_context_dispatch (context=0x8ed90f0) at gmain.c:3014
#36 0x4e6df958 in g_main_context_iterate (context=0x8ed90f0, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3092
#37 0x4e6dfc15 in g_main_context_iteration (context=0x8ed90f0, may_block=1) at gmain.c:3155
#38 0x4e9f641d in QEventDispatcherGlib::processEvents (this=0x8eb4968, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#39 0x43ac3bb6 in QGuiEventDispatcherGlib::processEvents (this=0x8eb4968, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#40 0x4e9c7dea in QEventLoop::processEvents (this=0xbfd8bdb4, flags=...) at kernel/qeventloop.cpp:149
#41 0x4e9c809a in QEventLoop::exec (this=0xbfd8bdb4, flags=...) at kernel/qeventloop.cpp:201
#42 0x4e9ccbd7 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#43 0x43a0e978 in QApplication::exec () at kernel/qapplication.cpp:3736
#44 0x08048805 in main (argc=1, argv=0xbfd8bed4) at /var/tmp/portage/app-office/kexi-2.3.3/work/kexi-2.3.3/kexi/main.cpp:34

Reported using DrKonqi
Comment 1 Jarosław Staniek 2011-12-06 21:06:36 UTC
I am unable to reproduce this crash, could you please attach
the small sample .kexi file using 'Add an attachment' link below? Thanks.
Comment 2 Dimitrios T Tanis 2012-02-11 23:22:13 UTC
I can't reproduce this either.
Comment 3 Martin Kampas 2012-02-12 08:21:38 UTC
Created attachment 68716 [details]
Example DB file to crash Kexi when setting data to a label in a report

Crashes every time I try with the attached file. Gentoo, KDE 4.8.0, Kexi 2.3.3.

Exact steps:
1. Start Kexi, open the file
2. Double click on "report1" in navigator
3. Switch to concept mode
4. Enlarge the report
5. Add a label
6. In property editor select internal source "over26"
7. Click "Set Data"
8. Click "Set Data" again - crash
Comment 4 Dimitrios T Tanis 2012-02-12 19:13:48 UTC
I hunted this bug down and found that it has to do with setting a query as a data source. I've changed the title to better describe the bug.
This bug stands as of 2.4 Beta 7 and can be reproduced every time.

This bug is exposed in two ways:
1) Setting a query as a data source for a report and clicking set data twice,
2) Setting a query as a data source (clicking once) and switching to data view.
Comment 5 Jarosław Staniek 2012-03-13 23:06:13 UTC
Git commit 9408a8234ac6096736862a859f43dc34190b8ff2 by Jaroslaw Staniek.
Committed on 13/03/2012 at 23:57.
Pushed by staniek into branch 'master'.

Fix deep copying of KexiDB query schema and ORDER BY structures

KexiDB
*Fix deep copying of query schema and ORDER BY structures
**This removes crashes related, e.g. in reports based on queries with joins
Related: bug 246928

FIXED-IN: Kexi 2.4.0 (Calligra 2.4.0)

M  +67   -43   kexi/kexidb/queryschema.cpp
M  +9    -5    kexi/kexidb/queryschema.h

http://commits.kde.org/calligra/9408a8234ac6096736862a859f43dc34190b8ff2
Comment 6 Jarosław Staniek 2012-03-13 23:23:43 UTC
Tested the attached db - still something to fix...
Comment 7 Jarosław Staniek 2012-03-18 20:16:38 UTC
Git commit 1ed7070a5181406469709e41db386f24a6fb9aea by Jaroslaw Staniek.
Committed on 13/03/2012 at 23:57.
Pushed by staniek into branch 'calligra/2.4'.

Fix deep copying of KexiDB query schema and ORDER BY structures

KexiDB
*Fix deep copying of query schema and ORDER BY structures
**This removes crashes related, e.g. in reports based on queries with joins
Related: bug 246928

FIXED-IN: Kexi 2.4.0 (Calligra 2.4.0)

M  +67   -43   kexi/kexidb/queryschema.cpp
M  +9    -5    kexi/kexidb/queryschema.h

http://commits.kde.org/calligra/1ed7070a5181406469709e41db386f24a6fb9aea
Comment 8 Jarosław Staniek 2012-06-27 11:28:25 UTC
Git commit e60656ccb660a092fd83fb790fc31db449072047 by Jaroslaw Staniek.
Committed on 27/06/2012 at 11:40.
Pushed by staniek into branch 'master'.

Predicate: Fix deep copying of query schema and ORDER BY structures

*This removes crashes related, e.g. in reports based on queries with joins
*(2012-03-13 calligra master commit 9408a8234ac60)
Related: bug 246928

DIGEST: All improvements ported from KexiDB connectivity library to Predicate (http://community.kde.org/Predicate).

M  +71   -50   Predicate/QuerySchema.cpp
M  +10   -6    Predicate/QuerySchema.h

http://commits.kde.org/predicate/e60656ccb660a092fd83fb790fc31db449072047