| Summary: | Kexi crashes on 'Quit' and closing window | ||
|---|---|---|---|
| Product: | [Applications] KEXI | Reporter: | Ian Balchin <inksi> |
| Component: | General | Assignee: | Jarosław Staniek <staniek> |
| Status: | CLOSED WAITINGFORINFO | ||
| Severity: | crash | CC: | adam, jtamate, pcellix, staniek |
| Priority: | NOR | ||
| Version First Reported In: | 2.9 Alpha | ||
| Target Milestone: | 2.9 | ||
| Platform: | Compiled Sources | ||
| OS: | Linux | ||
| Latest Commit: | http://commits.kde.org/calligra/6c8b194ff273f945f99fe014f170c9c6257f672a | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
| Attachments: |
New crash information added by DrKonqi
Another case that we're still not handling. |
||
|
Description
Ian Balchin
2014-05-02 14:42:26 UTC
Thanks for reporting. I need to know what exact version you compiled. The most recent right now is: commit dc9d3efaf36f45847762fd3c3517529701c71476. For this version the only similar issue I found is when I used the Query Designer. To check, go to the calligra/ source code directory and type: git log -1 kexi | head -n1 commit 1c53aa8b9e0968178424786177453f887d328ceb Ian I too get a crash on exit when ive been using the query plugin. Adam, there are other instances when it will crash, not restricted to running a query. I just opened a query, which I edited, then got a crash on exit. Repeatable. On the other hand, if I open a form, advance through the records, edit them, then exit, there is no crash. Repeatable. Glad I am not the only one making crashes! Ian I was able to get in reproduced on newest origin master commit: 83f9cf76ebd05413ec750aafec116ab9c86b172f appeared when I tried to modify query (I guess the same case as @staniek. @Wojciech Great. What worried me is that Ian reported the same crash not only for queries. Anyway, it may be related to ReleaseWithDebInfo build type. Also, I am hoping fixing it for queries can fix it everywhere. It crashes in KexiWindow::close when trying to delete second pointer to KexiView from the list My BT Program received signal SIGSEGV, Segmentation fault. 0x00007ffff2aae5b0 in vtable for QPaintDevice () from /usr/lib64/libQtGui.so.4 (gdb) bt #0 0x00007ffff2aae5b0 in vtable for QPaintDevice () from /usr/lib64/libQtGui.so.4 #1 0x00007ffff72b9e2c in KexiWindow::close (this=this@entry=0x9b8720, force=force@entry=true) at /home/piggz/src/calligra/kexi/core/KexiWindow.cpp:324 #2 0x00007ffff72b9fa6 in KexiWindow::~KexiWindow (this=0x9b8720, __in_chrg=<optimized out>) at /home/piggz/src/calligra/kexi/core/KexiWindow.cpp:168 #3 0x00007ffff72ba099 in KexiWindow::~KexiWindow (this=0x9b8720, __in_chrg=<optimized out>) at /home/piggz/src/calligra/kexi/core/KexiWindow.cpp:172 #4 0x00007ffff75809d6 in ~KexiWindowContainer (this=0x90b970, __in_chrg=<optimized out>) at /home/piggz/src/calligra/kexi/main/KexiMainWindow_p.h:143 #5 KexiWindowContainer::~KexiWindowContainer (this=0x90b970, __in_chrg=<optimized out>) at /home/piggz/src/calligra/kexi/main/KexiMainWindow_p.h:145 #6 0x00007ffff757724a in KexiMainWindow::closeWindow (this=this@entry=0x7c7b50, window=<optimized out>, layoutTaskBar=layoutTaskBar@entry=true, doNotSaveChanges=doNotSaveChanges@entry=false) at /home/piggz/src/calligra/kexi/main/KexiMainWindow.cpp:2954 #7 0x00007ffff7577688 in KexiMainWindow::closeWindow (this=0x7c7b50, window=<optimized out>) at /home/piggz/src/calligra/kexi/main/KexiMainWindow.cpp:2781 #8 0x00007ffff756af1d in KexiMainWindow::closeWindowForTab (this=0x7c7b50, tabIndex=<optimized out>) at /home/piggz/src/calligra/kexi/main/KexiMainWindow.cpp:2794 #9 0x00007ffff757f8ca in KexiMainWindow::qt_static_metacall (_o=0x7c7b50, _id=-14484, _a=0x7fffffffcbd0, _c=<optimized out>) at /home/piggz/src/calligra-build/kexi/main/KexiMainWindow.moc:396 #10 0x00007ffff3118d68 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4 #11 0x00007ffff2454d51 in QTabWidget::tabCloseRequested(int) () from /usr/lib64/libQtGui.so.4 #12 0x00007ffff3118d68 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4 #13 0x00007ffff244a8d1 in QTabBar::tabCloseRequested(int) () from /usr/lib64/libQtGui.so.4 #14 0x00007ffff3118d68 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4 #15 0x00007ffff264e612 in QAbstractButton::clicked(bool) () from /usr/lib64/libQtGui.so.4 #16 0x00007ffff23b1613 in ?? () from /usr/lib64/libQtGui.so.4 #17 0x00007ffff23b2783 in ?? () from /usr/lib64/libQtGui.so.4 #18 0x00007ffff23b286c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/libQtGui.so.4 #19 0x00007ffff2053f3e in QWidget::event(QEvent*) () from /usr/lib64/libQtGui.so.4 #20 0x00007ffff20049ec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4 #21 0x00007ffff200b0ed in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4 #22 0x00007ffff3b6b47a in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5 #23 0x00007ffff31050ad in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4 #24 0x00007ffff200a8a3 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib64/libQtGui.so.4 #25 0x00007ffff207c0bb in ?? () from /usr/lib64/libQtGui.so.4 #26 0x00007ffff207ab2c in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/libQtGui.so.4 #27 0x00007ffff20a19c2 in ?? () from /usr/lib64/libQtGui.so.4 #28 0x00007fffebf10316 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #29 0x00007fffebf10668 in ?? () from /usr/lib64/libglib-2.0.so.0 #30 0x00007fffebf1070c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #31 0x00007ffff3131d55 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4 #32 0x00007ffff20a1a76 in ?? () from /usr/lib64/libQtGui.so.4 #33 0x00007ffff3103d0f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4 #34 0x00007ffff3104005 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4 #35 0x00007ffff310913b in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4 #36 0x0000000000400b31 in main (argc=<optimized out>, argv=0x7fffffffdbb8) at /home/piggz/src/calligra/kexi/main.cpp:36 as we all can see this is not related to quiting application it happens when closing query window quit just triggers this event Ive added some debug code to KexiWindow::close(boot) and done a little investigating and found this: There are 2 loops in this function the first notifies that the views are closing, the second deletes the views associated with the window. There should be at most 1 data view and 1 design view. When i open form in design mode and close it, loop 1 runs once as does loop 2 and the world is happy, the view in each is a design view. When i open a form in data view and close it, again, loop 1 runs once and loop 2 runs once. the view is a data view and again the world is happy. When i open a form in design view, then switch to data view and close it, loop one runs twice and loop 2 runs twice, with a data and design view. Still, the world is happy. When i open a query in data view and close it, loop 1 runs once and loop 2 runs once. The view is a data view. Happiness prevails. When i open a query in design view and close it, loop 1 runs 3 times, loop 2 runs and crashes on the second iteration. The view in the 3 runs of loop 1 is a design view. My guess is these three views are the same one, and we try to delete it multiple times. When i open a query in design view an switch to data view and close it, there appears to be 1 data view and 3 design views still. The bug appears to be in the query design view parenting to the window. Adam I also run a bit of digging and running on the second iteration I noticed it was different memory address than the first one. I need to double check it. I also found that it started after introducing commit 4f233828ea2c2909701dcf655de05c808ae67082. I built it also with one commit less f0b9019dae435eeaa618978a613baa88331e2c74 and there was no crash. Thanks for help : ) talking about Adam's iterations: in the first one printing object that is about to be deleted resulted in something like this:
$2 = {<QWidget> = {<No data fields>}, <KexiActionProxy> = {
_vptr.KexiActionProxy = 0xa8a144d4 <vtable for KexiQueryDesignerGuiEditor+340>,
m_host = 0x81f059c, m_receiver = {o = 0x853cc10}, m_sharedActionChildren = {{p = {
static shared_null = {ref = {_q_value = 5200}, alloc = 0, begin = 0, end = 0,
sharable = 1, array = {0x0}}, d = 0x8625bf8}, d = 0x8625bf8}},
m_alternativeActions = {{p = {static shared_null = {ref = {_q_value = 5200},
alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}},
d = 0xb68e1434 <QListData::shared_null>},
d = 0xb68e1434 <QListData::shared_null>}}, m_actionProxyParent = 0x839d544,
m_signal_parent = <incomplete type>, m_KAction_setEnabled_helper = 0x83bbe40,
m_focusedChild = 0x8577924, d = 0x8531160}, static staticMetaObject = {d = {
superdata = 0xb6546a7c <QWidget::staticMetaObject>,
stringdata = 0xb7c7f880 <qt_meta_stringdata_KexiView> "KexiView",
data = 0xb7c7f760 <qt_meta_data_KexiView>,
extradata = 0xb7c9e0a4 <KexiView::staticMetaObjectExtraData>}},
static staticMetaObjectExtraData = {objects = 0x0,
static_metacall = 0xb7c5e58c <KexiView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d = 0x8556588}
this one deletes okay. The second view that crashes prints out like this
$3 = {<QWidget> = {<No data fields>}, <KexiActionProxy> = {
_vptr.KexiActionProxy = 0xb7c9dd60 <vtable for KexiActionProxy+8>,
m_host = 0x81f059c, m_receiver = {o = 0x8577910}, m_sharedActionChildren = {{p = {
static shared_null = {ref = {_q_value = 4555}, alloc = 0, begin = 0, end = 0,
sharable = 1, array = {0x0}}, d = 0xb68e1434 <QListData::shared_null>},
d = 0xb68e1434 <QListData::shared_null>}}, m_alternativeActions = {{p = {
static shared_null = {ref = {_q_value = 4555}, alloc = 0, begin = 0, end = 0,
sharable = 1, array = {0x0}}, d = 0xb68e1434 <QListData::shared_null>},
d = 0xb68e1434 <QListData::shared_null>}}, m_actionProxyParent = 0x0,
m_signal_parent = <incomplete type>, m_KAction_setEnabled_helper = 0x8273df8,
m_focusedChild = 0x0, d = 0x8273ea8}, static staticMetaObject = {d = {
superdata = 0xb6546a7c <QWidget::staticMetaObject>,
stringdata = 0xb7c7f880 <qt_meta_stringdata_KexiView> "KexiView",
data = 0xb7c7f760 <qt_meta_data_KexiView>,
extradata = 0xb7c9e0a4 <KexiView::staticMetaObjectExtraData>}},
static staticMetaObjectExtraData = {objects = 0x0,
static_metacall = 0xb7c5e58c <KexiView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d = 0x8273f08}
Created attachment 86541 [details]
New crash information added by DrKonqi
kexi (2.9 Pre-Alpha) on KDE Platform 4.13.60 using Qt 4.8.6
- What I was doing when the application crashed:
Just closing a script window that opened by mistake.
version: commit 8eb244e92e8d0ab1be998b0327a4ad2808067ed8 (master) Fri May 9 15:27:41 2014 +0200
-- Backtrace (Reduced):
#7 0x00007f982c470155 in KexiWindow::close (this=this@entry=0x42d5240, force=force@entry=true) at /g/kdegit/calligra/kexi/core/KexiWindow.cpp:324
#8 0x00007f982c4701f6 in KexiWindow::~KexiWindow (this=0x42d5240, __in_chrg=<optimized out>) at /g/kdegit/calligra/kexi/core/KexiWindow.cpp:168
#9 0x00007f982c4702a9 in KexiWindow::~KexiWindow (this=0x42d5240, __in_chrg=<optimized out>) at /g/kdegit/calligra/kexi/core/KexiWindow.cpp:172
#10 0x00007f982c556075 in KexiWindowContainer::~KexiWindowContainer (this=0x3b9a740, __in_chrg=<optimized out>) at /g/kdegit/calligra/kexi/main/KexiMainWindow_p.h:143
#11 0x00007f982c5560c9 in KexiWindowContainer::~KexiWindowContainer (this=0x3b9a740, __in_chrg=<optimized out>) at /g/kdegit/calligra/kexi/main/KexiMainWindow_p.h:145
Jaime, the fix is here and will be in git shortly https://git.reviewboard.kde.org/r/118056/ Git commit 94032ec1e22c1db6f607baec9634730eec6c40c8 by Wojciech Kosowicz. Committed on 08/05/2014 at 18:29. Pushed by wkosowicz into branch 'master'. Removing non-direct children of kexiwindow from to be deleted list The findChildren method returned all the children even those non-direct When deleting view it propagates from parent to children. Therefore situation occured when view was first indirectly deleted and them directly. This checks for the non-direct childs and deletes from the list FIXED-IN: 2.8.3 M +10 -6 kexi/core/KexiWindow.cpp http://commits.kde.org/calligra/94032ec1e22c1db6f607baec9634730eec6c40c8 Git commit 6c8b194ff273f945f99fe014f170c9c6257f672a by Jaroslaw Staniek, on behalf of Wojciech Kosowicz. Committed on 08/05/2014 at 18:29. Pushed by staniek into branch 'calligra/2.8'. Removing non-direct children of kexiwindow from to be deleted list The findChildren method returned all the children even those non-direct When deleting view it propagates from parent to children. Therefore situation occured when view was first indirectly deleted and them directly. This checks for the non-direct childs and deletes from the list. FIXED-IN: 2.8.3 REVIEW:118056 M +10 -6 kexi/core/KexiWindow.cpp http://commits.kde.org/calligra/6c8b194ff273f945f99fe014f170c9c6257f672a Created attachment 86634 [details]
Another case that we're still not handling.
It happens with query designer was used.
I will investigate it :) Any steps to reproduce would be appreciated :) Hi, this crash is no longer happening repeatedly, but I am having random crashes, usually when closing something. The Find box is a good culprit. I spoke to Jaroslaw about random crashes and will post another bug for the next one that happens - maybe tomorrow with a little "luck". a backtrace from #335739 #10 0x0085a616 in qt_message_output (msgType=QtFatalMsg, buf=0xc55fb90 "ASSERT: \"d\" in file /usr/include/qt4/QtCore/qscopedpointer.h, line 112") at global/qglobal.cpp:2276 #11 0x0085aa4b in qt_message (msgType=QtFatalMsg, msg=0x9e7138 "ASSERT: \"%s\" in file %s, line %d", ap=0xbfdaafe4 "=\fW") at global/qglobal.cpp:2322 #12 0x0085ab68 in qFatal (msg=0x9e7138 "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2505 #13 0x0085abf5 in qt_assert (assertion=0x570c3d "d", file=0x570c14 "/usr/include/qt4/QtCore/qscopedpointer.h", line=112) at global/qglobal.cpp:2002 #14 0x00534711 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator-> (this=0xc6df85c) at /usr/include/qt4/QtCore/qscopedpointer.h:112 #15 0x0053424a in QObject::parent (this=0xc6df858) at /usr/include/qt4/QtCore/qobject.h:273 #16 0x0054b5e4 in KexiWindow::close (this=0xa3ea440, force=true) at /home/inksi/kde4/src/calligra/kexi/core/KexiWindow.cpp:325 #17 0x0054ae48 in KexiWindow::~KexiWindow (this=0xa3ea440, __in_chrg=<optimized out>) at /home/inksi/kde4/src/calligra/kexi/core/KexiWindow.cpp:168 #18 0x0054aee3 in KexiWindow::~KexiWindow (this=0xa3ea440, __in_chrg=<optimized out>) at /home/inksi/kde4/src/calligra/kexi/core/KexiWindow.cpp:172 #19 0x00d6119e in KexiWindowContainer::~KexiWindowContainer (this=0xa1fc178, __in_chrg=<optimized out>) at /home/inksi/kde4/src/calligra/kexi/main/KexiMainWindow_p.h:143 #20 0x00d611f9 in KexiWindowContainer::~KexiWindowContainer (this=0xa1fc178, __in_chrg=<optimized out>) at /home/inksi/kde4/src/calligra/kexi/main/KexiMainWindow_p.h:145 #21 0x00d57a14 in KexiMainWindow::closeWindow (this=0x9bc12f8, window=0xa3ea440, layoutTaskBar=true, doNotSaveChanges=false) at /home/inksi/kde4/src/calligra/kexi/main/KexiMainWindow.cpp:3054 #22 0x00d56da3 in KexiMainWindow::closeWindow (this=0x9bc12f8, window=0xa3ea440) at /home/inksi/kde4/src/calligra/kexi/main/KexiMainWindow.cpp:2880 #23 0x00d56e48 in KexiMainWindow::closeWindowForTab (this=0x9bc12f8, tabIndex=1) at /home/inksi/kde4/src/calligra/kexi/main/KexiMainWindow.cpp:2893 #24 0x00d5c11e in KexiMainWindow::qt_static_metacall (_o=0x9bc12f8, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0xbfdab468) at /home/inksi/kde4/build/calligra-2.8/kexi/main/KexiMainWindow.moc:394 #25 0x009916b1 in QMetaObject::activate (sender=0x9e4e268, m=0x1997724, local_signal_index=1, argv=0xbfdab468) at kernel/qobject.cpp:3547 #26 0x01506fd5 in QTabWidget::tabCloseRequested (this=0x9e4e268, _t1=1) at .moc/release-shared/moc_qtabwidget.cpp:221 #27 0x015072b1 in qt_static_metacall (_a=0xbfdab568, _id=1, _o=0x9e4e268, _c=<optimized out>) at .moc/release-shared/moc_qtabwidget.cpp:111 #28 QTabWidget::qt_static_metacall (_o=0x9e4e268, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xbfdab568) at .moc/release-shared/moc_qtabwidget.cpp:104 #29 0x009916b1 in QMetaObject::activate (sender=0x9e4f920, m=0x199752c, local_signal_index=1, argv=0xbfdab568) at kernel/qobject.cpp:3547 #30 0x014faa65 in QTabBar::tabCloseRequested (this=0x9e4f920, _t1=1) at .moc/release-shared/moc_qtabbar.cpp:222 #31 0x014fab16 in QTabBarPrivate::_q_closeTab (this=0x9e4f968) at widgets/qtabbar.cpp:662 #32 0x009916b1 in QMetaObject::activate (sender=0xc538178, m=0x19a37c8, local_signal_index=2, argv=0xbfdab6a8) at kernel/qobject.cpp:3547 #33 0x0174f9cd in QAbstractButton::clicked (this=0xc538178, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:220 #34 0x0144367d in QAbstractButtonPrivate::emitClicked (this=0xc5425a0) at widgets/qabstractbutton.cpp:548 #35 0x01444ceb in QAbstractButtonPrivate::click (this=0xc5425a0) at widgets/qabstractbutton.cpp:541 #36 0x01444fa6 in QAbstractButton::mouseReleaseEvent (this=0xc538178, e=0xbfdabd44) at widgets/qabstractbutton.cpp:1123 #37 0x010721ac in QWidget::event (this=0xc538178, event=0xbfdabd44) at kernel/qwidget.cpp:8362 #38 0x01444249 in QAbstractButton::event (this=0xc538178, e=0xbfdabd44) at widgets/qabstractbutton.cpp:1082 #39 0x01017ed4 in notify_helper (e=0xbfdabd44, receiver=0xc538178, this=0x9be0140) at kernel/qapplication.cpp:4559 #40 QApplicationPrivate::notify_helper (this=0x9be0140, receiver=0xc538178, e=0xbfdabd44) at kernel/qapplication.cpp:4531 #41 0x0101e024 in QApplication::notify (this=0x9be0140, receiver=0xc538178, e=0xbfdabd44) at kernel/qapplication.cpp:4102 #42 0x01b9ce01 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #43 0x0097a97e in QCoreApplication::notifyInternal (this=0x9bd6d28, receiver=0xc538178, event=0xbfdabd44) at kernel/qcoreapplication.cpp:876 #44 0x01018e95 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231 #45 QApplicationPrivate::sendMouseEvent (receiver=0xc538178, event=0xbfdabd44, alienWidget=0xc538178, nativeWidget=0x9e4f920, buttonDown=0x19accf4, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3170 #46 0x010a50c4 in QETWidget::translateMouseEvent (this=0x9e4f920, event=0xbfdac1fc) at kernel/qapplication_x11.cpp:4619 #47 0x010a3c5d in QApplication::x11ProcessEvent (this=0x9bd6d28, event=0xbfdac1fc) at kernel/qapplication_x11.cpp:3734 #48 0x010d0efc in x11EventSourceDispatch (s=0x9be1ad0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #49 0x04860d46 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0 #50 0x048610e5 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #51 0x048611c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 #52 0x009ad8e7 in QEventDispatcherGlib::processEvents (this=0x9be0750, flags=...) at kernel/qeventdispatcher_glib.cpp:426 #53 0x010d0afa in QGuiEventDispatcherGlib::processEvents (this=0x9be0750, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #54 0x0097950d in QEventLoop::processEvents (this=0xbfdac4f4, flags=...) at kernel/qeventloop.cpp:149 #55 0x009797a9 in QEventLoop::exec (this=0xbfdac4f4, flags=...) at kernel/qeventloop.cpp:204 #56 0x0097eeba in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148 #57 0x01015a74 in QApplication::exec () at kernel/qapplication.cpp:3820 #58 0x08048796 in main (argc=2, argv=0xbfdac604) at /home/inksi/kde4/src/calligra/kexi/main.cpp:36 *** Bug 335739 has been marked as a duplicate of this bug. *** *** Bug 336546 has been marked as a duplicate of this bug. *** *** Bug 336900 has been marked as a duplicate of this bug. *** Set a NEEDSINFO. Let's see if we someone reproduces the bug in Kexi >= 2.8.6. Update: after some fixes in 2.9 betas, I did not experience this for a long time. Would be nice if you test 2.9 and tell me. We'll reopen if someone reports issues for 2.9.0 and newer. Hello, Jarosław, noted. will test when 2.9 installed. Ian On Wed, 04 Mar 2015 09:35:00 +0000 Jarosław Staniek <staniek@kde.org> wrote: > https://bugs.kde.org/show_bug.cgi?id=334234 > > Jarosław Staniek <staniek@kde.org> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > Status|RESOLVED |CLOSED > ----- Ian Balchin Fables Bookshop, Grahamstown. |