Bug 334584 - Kexi crash in Table Designer when changing data type
Summary: Kexi crash in Table Designer when changing data type
Status: CLOSED FIXED
Alias: None
Product: KEXI
Classification: Applications
Component: Tables (show other bugs)
Version: 2.8.2
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Kexi Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-05-10 15:52 UTC by Marcos Perez
Modified: 2023-09-03 20:45 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Screenshot that descript fail (173.35 KB, image/png)
2014-05-10 15:55 UTC, Marcos Perez
Details
New crash information added by DrKonqi (8.04 KB, text/plain)
2015-02-06 13:45 UTC, Pastor Gómez
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marcos Perez 2014-05-10 15:52:34 UTC
Application: kexi (2.8.2)
KDE Platform Version: 4.13.0
Qt Version: 4.8.6
Operating System: Linux 3.13.0-26-generic i686
Distribution: Ubuntu 14.04 LTS

-- Information about the crash:
- What I was doing when the application crashed:
(spanish) Tenía una instancia de Kexi activada con dos tablas abiertas. Una de ellas contenía una referencia de datos a otra tabla y estaba cambiando el tipo de campo de "número entero" a "texto". Cuando seleccioné texto, el crash fue inmediato.

- Custom settings of the application:
(spanish) La base de datos con la que estaba trabajando es una conexión externa de MySQL en localhost. Configuración de Calligra y Kexi por defecto, sin cambios.

The crash can be reproduced sometimes.

-- 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 0xb1bed980 (LWP 6753))]

Thread 2 (Thread 0xa7d99b40 (LWP 6758)):
#0  0xb77d0424 in __kernel_vsyscall ()
#1  0xb64c37ab in poll () at ../sysdeps/unix/syscall-template.S:81
#2  0xb541a20b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb540b3e8 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb540b528 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb673d95f in QEventDispatcherGlib::processEvents (this=0xa7400468, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#6  0xb670c823 in QEventLoop::processEvents (this=this@entry=0xa7d99258, flags=...) at kernel/qeventloop.cpp:149
#7  0xb670cb49 in QEventLoop::exec (this=this@entry=0xa7d99258, flags=...) at kernel/qeventloop.cpp:204
#8  0xb65f923d in QThread::exec (this=this@entry=0x9b76330) at thread/qthread.cpp:537
#9  0xb66ecc44 in QInotifyFileSystemWatcherEngine::run (this=0x9b76330) at io/qfilesystemwatcher_inotify.cpp:265
#10 0xb65fbb6f in QThreadPrivate::start (arg=0x9b76330) at thread/qthread_unix.cpp:349
#11 0xb54f0f70 in start_thread (arg=0xa7d99b40) at pthread_create.c:312
#12 0xb64d270e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129

Thread 1 (Thread 0xb1bed980 (LWP 6753)):
[KCrash Handler]
#7  0xb62b8c2f in KexiDB::TableViewColumn::isReadOnly (this=0xa66ecd0) at /build/buildd/calligra-2.8.2/libs/db/tableviewcolumn.cpp:239
#8  0xa68998d7 in KexiComboBoxTableEdit::eventFilter (this=0xa817cd0, o=0xa17f510, e=0xbfc240a4) at /build/buildd/calligra-2.8.2/kexi/widget/tableview/kexicomboboxtableedit.cpp:365
#9  0xb670dfbe in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=this@entry=0x9764468, receiver=receiver@entry=0xa17f510, event=event@entry=0xbfc240a4) at kernel/qcoreapplication.cpp:1063
#10 0xb6c697d1 in QApplicationPrivate::notify_helper (this=0x9764468, receiver=0xa17f510, e=0xbfc240a4) at kernel/qapplication.cpp:4563
#11 0xb6c702d3 in QApplication::notify (this=0x974f1c0, receiver=receiver@entry=0xa17f510, e=e@entry=0xbfc240a4) at kernel/qapplication.cpp:4353
#12 0xb58760a4 in KApplication::notify (this=0x974f1c0, receiver=0xa17f510, event=0xbfc240a4) at ../../kdeui/kernel/kapplication.cpp:311
#13 0xb670de4a in QCoreApplication::notifyInternal (this=0x974f1c0, receiver=receiver@entry=0xa17f510, event=event@entry=0xbfc240a4) at kernel/qcoreapplication.cpp:953
#14 0xb6c6b9f6 in sendEvent (event=0xbfc240a4, receiver=0xa17f510) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#15 QApplicationPrivate::enterModal (widget=widget@entry=0xaaa7658) at kernel/qapplication.cpp:3026
#16 0xb6cc041e in QWidgetPrivate::show_helper (this=<optimized out>) at kernel/qwidget.cpp:7561
#17 0xb6cc22bd in QWidget::setVisible (this=this@entry=0xaaa7658, visible=visible@entry=true) at kernel/qwidget.cpp:7778
#18 0xb719a487 in QDialog::setVisible (this=0xaaa7658, visible=true) at dialogs/qdialog.cpp:749
#19 0xb7199e9b in show (this=0xaaa7658) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:497
#20 QDialog::exec (this=0xaaa7658) at dialogs/qdialog.cpp:553
#21 0xb57d9d6f in KMessageBox::createKMessageBox (dialog=0xaaa7658, icon=..., text=..., strlist=..., ask=..., checkboxReturn=0xbfc243e2, options=..., details=..., notifyType=QMessageBox::Information) at ../../kdeui/dialogs/kmessagebox.cpp:344
#22 0xb57da030 in KMessageBox::createKMessageBox (dialog=dialog@entry=0xaaa7658, icon=icon@entry=QMessageBox::Information, text=..., strlist=..., ask=..., checkboxReturn=0xbfc243e2, options=..., details=...) at ../../kdeui/dialogs/kmessagebox.cpp:159
#23 0xb57dbd85 in KMessageBox::questionYesNoListWId (parent_id=109053150, text=..., strlist=..., caption=..., buttonYes_=..., buttonNo_=..., dontAskAgainName=..., options=...) at ../../kdeui/dialogs/kmessagebox.cpp:486
#24 0xb57dbfcb in KMessageBox::questionYesNoList (parent=parent@entry=0x9dd3fb0, text=..., strlist=..., caption=..., buttonYes=..., buttonNo=..., dontAskAgainName=..., options=...) at ../../kdeui/dialogs/kmessagebox.cpp:446
#25 0xb57dc03f in KMessageBox::questionYesNo (parent=parent@entry=0x9dd3fb0, text=..., caption=..., buttonYes=..., buttonNo=..., dontAskAgainName=..., options=...) at ../../kdeui/dialogs/kmessagebox.cpp:361
#26 0xa75535ca in KexiTableDesignerView::storeData (this=0x9dd3fb0, dontAsk=false) at /build/buildd/calligra-2.8.2/kexi/plugins/tables/kexitabledesignerview.cpp:1525
#27 0xb761d78e in KexiWindow::storeData (this=this@entry=0xa24af40, dontAsk=false) at /build/buildd/calligra-2.8.2/kexi/core/KexiWindow.cpp:712
#28 0xb76afd53 in KexiMainWindow::saveObject (this=this@entry=0x988daf8, window=0xa24af40, messageWhenAskingForName=..., options=...) at /build/buildd/calligra-2.8.2/kexi/main/KexiMainWindow.cpp:2820
#29 0xb76a6d5d in KexiMainWindow::slotProjectSave (this=0x988daf8) at /build/buildd/calligra-2.8.2/kexi/main/KexiMainWindow.cpp:2530
#30 0xb76bed1d in KexiMainWindow::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=0xbfc247d8, _c=<optimized out>) at /build/buildd/calligra-2.8.2/obj-i686-linux-gnu/kexi/main/KexiMainWindow.moc:488
#31 0xb67230f7 in QMetaObject::activate (sender=sender@entry=0x98b5318, m=m@entry=0xb75c3718 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0xbfc247d8) at kernel/qobject.cpp:3539
#32 0xb6c6272d in QAction::triggered (this=this@entry=0x98b5318, _t1=false) at .moc/release-shared/moc_qaction.cpp:276
#33 0xb6c64324 in QAction::activate (this=0x98b5318, event=QAction::Trigger) at kernel/qaction.cpp:1257
#34 0xb6c64860 in trigger (this=<optimized out>) at kernel/qaction.h:218
#35 QAction::qt_static_metacall (_o=0x1, _id=0, _a=0xbfc24918, _c=<optimized out>) at .moc/release-shared/moc_qaction.cpp:150
#36 0xb67230f7 in QMetaObject::activate (sender=sender@entry=0xa1886f0, m=m@entry=0xb75d7ac8 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0xbfc24918) at kernel/qobject.cpp:3539
#37 0xb73660ad in QAbstractButton::clicked (this=this@entry=0xa1886f0, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:219
#38 0xb7080ab1 in QAbstractButtonPrivate::emitClicked (this=this@entry=0xa2e52c8) at widgets/qabstractbutton.cpp:548
#39 0xb7081e37 in QAbstractButtonPrivate::click (this=this@entry=0xa2e52c8) at widgets/qabstractbutton.cpp:541
#40 0xb7081f3e in QAbstractButton::mouseReleaseEvent (this=this@entry=0xa1886f0, e=e@entry=0xbfc24e14) at widgets/qabstractbutton.cpp:1123
#41 0xb71537e7 in QToolButton::mouseReleaseEvent (this=0xa1886f0, e=0xbfc24e14) at widgets/qtoolbutton.cpp:723
#42 0xb6cc33fa in QWidget::event (this=this@entry=0xa1886f0, event=event@entry=0xbfc24e14) at kernel/qwidget.cpp:8376
#43 0xb7082f42 in QAbstractButton::event (this=this@entry=0xa1886f0, e=e@entry=0xbfc24e14) at widgets/qabstractbutton.cpp:1082
#44 0xb71538d4 in QToolButton::event (this=0xa1886f0, event=0xbfc24e14) at widgets/qtoolbutton.cpp:1168
#45 0xb6c697f4 in QApplicationPrivate::notify_helper (this=0x9764468, receiver=receiver@entry=0xa1886f0, e=0xbfc24e14) at kernel/qapplication.cpp:4567
#46 0xb6c71ea0 in QApplication::notify (this=0x974f1c0, receiver=receiver@entry=0xa1886f0, e=e@entry=0xbfc24e14) at kernel/qapplication.cpp:4110
#47 0xb58760a4 in KApplication::notify (this=0x974f1c0, receiver=0xa1886f0, event=0xbfc24e14) at ../../kdeui/kernel/kapplication.cpp:311
#48 0xb670de4a in QCoreApplication::notifyInternal (this=0x974f1c0, receiver=receiver@entry=0xa1886f0, event=event@entry=0xbfc24e14) at kernel/qcoreapplication.cpp:953
#49 0xb6c6fb53 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#50 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0xa1886f0, event=0xbfc24e14, alienWidget=0xa1886f0, nativeWidget=0x994f170, buttonDown=buttonDown@entry=0xb75e0ce4 <qt_button_down>, lastMouseReceiver=..., spontaneous=spontaneous@entry=true) at kernel/qapplication.cpp:3178
#51 0xb6cf3778 in QETWidget::translateMouseEvent (this=0x994f170, event=event@entry=0xbfc2503c) at kernel/qapplication_x11.cpp:4634
#52 0xb6cf2ec5 in QApplication::x11ProcessEvent (this=0x974f1c0, event=event@entry=0xbfc2503c) at kernel/qapplication_x11.cpp:3627
#53 0xb6d1e524 in x11EventSourceDispatch (s=0x9765a00, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#54 0xb540b1e3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#55 0xb540b468 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#56 0xb540b528 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#57 0xb673d95f in QEventDispatcherGlib::processEvents (this=this@entry=0x97074b0, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#58 0xb6d1e5de in QGuiEventDispatcherGlib::processEvents (this=0x97074b0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#59 0xb670c823 in QEventLoop::processEvents (this=this@entry=0xbfc252f8, flags=...) at kernel/qeventloop.cpp:149
#60 0xb670cb49 in QEventLoop::exec (this=this@entry=0xbfc252f8, flags=...) at kernel/qeventloop.cpp:204
#61 0xb67128fe in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1225
#62 0xb6c67a24 in QApplication::exec () at kernel/qapplication.cpp:3828
#63 0x080486cd in main (argc=1, argv=0xbfc25404) at /build/buildd/calligra-2.8.2/kexi/main.cpp:36

Reported using DrKonqi
Comment 1 Marcos Perez 2014-05-10 15:55:24 UTC
Created attachment 86562 [details]
Screenshot that descript fail
Comment 2 Jarosław Staniek 2014-05-10 23:29:00 UTC
Autotranslation to English:

Information about the crash:
I had an instance of Kexi activated with two open tables. One of them contained a reference to database table, and was changing the field type "integer" to "text". When I selected text, the crash was immediate.

Custom settings of the application:
The database I was working with is an external connection to localhost MySQL. Default Calligra and Kexi, unchanged.
Comment 3 Jarosław Staniek 2014-05-10 23:30:21 UTC
Possible workaround: close the other Table Designer's view before performing such changes.
Comment 4 Jarosław Staniek 2014-05-10 23:31:51 UTC
I think this bug may be independent of the database type that is used.
Comment 5 Marcos Perez 2014-05-10 23:36:25 UTC
Is possible, but I don't test it. I confirm that issue repeats sometimes, but not ever. I can do the work by other way without crash, that is delete "parent table field" (in the right of screen, in the attached screenshot). I delete the three fields and then I change the field type in design area and all  works well. 

I think in a possible solution, that warns to user for delete this fields before continue when the field type is changing.

Thank you for your time and attention.
Greetings
Comment 6 Jarosław Staniek 2014-05-10 23:49:20 UTC
Great, changes the summary to make it easier to find. 

I think the fix will be possible without adding an extra warning to the user.
Comment 7 Marcos Perez 2014-05-10 23:55:46 UTC
Ok, all yours!
I go to sleep, thank you :D
Comment 8 Pastor Gómez 2015-02-06 13:45:09 UTC
Created attachment 90942 [details]
New crash information added by DrKonqi

kexi (2.8.2) on KDE Platform 4.14.2 using Qt 4.8.2

- What I was doing when the application crashed: I had two linked tables open at the same time. I changed some data from the source table, and when I tried to save the new data, the application crashed.

-- Backtrace (Reduced):
#7  0xb62769ff in KexiDB::TableViewColumn::isReadOnly (this=0x904e220) at /build/buildd/calligra-2.8.2/libs/db/tableviewcolumn.cpp:239
#8  0xafcdf687 in KexiComboBoxTableEdit::eventFilter (this=0x8f9e008, o=0x8f1b7d8, e=0xbfe76c34) at /build/buildd/calligra-2.8.2/kexi/widget/tableview/kexicomboboxtableedit.cpp:365
#9  0xb66d1fa6 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x82e62c0, receiver=0x8f1b7d8, event=0xbfe76c34) at kernel/qcoreapplication.cpp:1025
#10 0xb6c43dc2 in notify_helper (e=0xbfe76c34, receiver=0x8f1b7d8, this=0x82e62c0) at kernel/qapplication.cpp:4552
#11 QApplicationPrivate::notify_helper (this=0x82e62c0, receiver=0x8f1b7d8, e=0xbfe76c34) at kernel/qapplication.cpp:4528
Comment 9 Jarosław Staniek 2018-01-15 21:54:59 UTC
99% of chances that it's fixed in todays 3.1.0 Alpha (git) or even before. 

When you have chance to test the new version feel free to reopen this report if needed or report other bugs.

Thanks.