Bug 148355 - Crash when editing table with more than 101 columns
Summary: Crash when editing table with more than 101 columns
Status: CLOSED FIXED
Alias: None
Product: KEXI
Classification: Applications
Component: General (show other bugs)
Version: 1.1.3 (KOffice 1.6.3)
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Jarosław Staniek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-07-30 13:13 UTC by Rodolfo Saccani
Modified: 2007-12-17 12:49 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
backtrace and original file (3.21 KB, application/x-gtar)
2007-07-30 18:07 UTC, Rodolfo Saccani
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rodolfo Saccani 2007-07-30 13:13:14 UTC
Version:           1.1.3 (KOffice 1.6.3) (using KDE KDE 3.5.6)
Installed from:    Ubuntu Packages
OS:                Linux

How to reproduce the bug:
- Create a table with more that 101 fields
- Edit the table
- select the last field
The application crashes.

The reason for the crash is:
Variable MAX_FIELDS is set to 101 in widget/tableview/kexidataawarepropertyset.cpp
Some vectors are sized based on this value.

Suggestion:
- Increase MAX_FIELDS value to allow supporting big flat tables (around 200 could be fine)
- Implement error handling to avoid crashes
Comment 1 Bram Schoenmakers 2007-07-30 17:27:37 UTC
Can you provide a backtrace of the crash please?

Read http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports for more info.
Comment 2 Rodolfo Saccani 2007-07-30 18:07:27 UTC
Created attachment 21303 [details]
backtrace and original file
Comment 3 Bram Schoenmakers 2007-07-30 19:22:21 UTC
Pasting the bt here, since that makes it easier for bug hunters.

[KCrash handler]
#6  0xb69a5656 in QObject::connect () from /usr/lib/libqt-mt.so.3
#7  0xb6969afc in QGuardedPtrPrivate::reconnect () from /usr/lib/libqt-mt.so.3
#8  0xb7bc4bb5 in KexiMainWindowImpl::propertySetSwitched ()
   from /usr/lib/libkeximain.so.2
#9  0xb7c7ae99 in KexiViewBase::propertySetSwitched ()
   from /usr/lib/libkexicore.so.2
#10 0xb58c94d5 in KexiTableDesignerView::propertySetSwitched ()
   from /usr/lib/kde3/kexihandler_table.so
#11 0xb76e7a1b in KexiDataAwarePropertySet::slotCellSelected ()
   from /usr/lib/libkexidatatable.so.2
#12 0xb770ad92 in KexiDataAwarePropertySet::qt_invoke ()
   from /usr/lib/libkexidatatable.so.2
#13 0xb69a39b8 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#14 0xb76eee91 in KexiTableView::cellSelected ()
   from /usr/lib/libkexidatatable.so.2
#15 0xb76f6e09 in KexiDataAwareObjectInterface::setCursorPosition ()
   from /usr/lib/libkexidatatable.so.2
#16 0xb76ec8a2 in KexiTableView::handleContentsMousePressOrRelease ()
   from /usr/lib/libkexidatatable.so.2
#17 0xb76ee5b6 in KexiTableView::contentsMousePressEvent ()
   from /usr/lib/libkexidatatable.so.2
#18 0xb6ad9001 in QScrollView::viewportMousePressEvent ()
   from /usr/lib/libqt-mt.so.3
#19 0xb6ada474 in QScrollView::eventFilter () from /usr/lib/libqt-mt.so.3
#20 0xb76f1fa7 in KexiTableView::eventFilter ()
   from /usr/lib/libkexidatatable.so.2
#21 0xb69a2e38 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3
#22 0xb69a2eb6 in QObject::event () from /usr/lib/libqt-mt.so.3
#23 0xb69da58f in QWidget::event () from /usr/lib/libqt-mt.so.3
#24 0xb693aa60 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#25 0xb693cc1e in QApplication::notify () from /usr/lib/libqt-mt.so.3
#26 0xb70fece2 in KApplication::notify () from /usr/lib/libkdecore.so.4
#27 0xb68cd25d in QApplication::sendSpontaneousEvent ()
   from /usr/lib/libqt-mt.so.3
#28 0xb68cbec2 in QETWidget::translateMouseEvent ()
   from /usr/lib/libqt-mt.so.3
#29 0xb68c9fac in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#30 0xb68e1180 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#31 0xb6955136 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#32 0xb6954f46 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#33 0xb693c609 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#34 0xb7f258da in kdemain () from /usr/lib/libkdeinit_kexi.so
#35 0x08048552 in ?? ()
#36 0xb7cdbebc in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#37 0x080484a1 in ?? ()
Comment 4 Jarosław Staniek 2007-08-22 08:43:46 UTC
I guess this is already fixed:

r688748 | staniek | 2007-07-16 20:56:24 +0200 (Mon, 16 Jul 2007) 

- thoushand objects can be handled by internal dictionaries now, not hundred

Comment 5 Jarosław Staniek 2007-08-22 09:17:35 UTC
Hope 1009 fields could be sane limit. Note that there is no tarball available (yet?), the fix is in SVN only. For convenience I provided this patch now:

http://kexi-project.org/wiki/wikiview/index.php?Kexi1.1.3_Patches