Version: 1.6.1 (using KDE KDE 3.5.5) Installed from: Mandrake RPMs Compiler: GCC 4.1.1 OS: Linux If opening an OpenDocument spreadsheet saved in Openoffice, KSpread crashes on startup, with the following backtrace, after printing the following to the console. I will attach the mentioned document. QTime::setHMS Invalid time -1:-1:-1.000 QTime::setHMS Invalid time -1:-1:-1.000 KCrash: Application 'kspread' crashing... [KCrash handler] #6 0xb65ad6c5 in KoUnavailPart::~KoUnavailPart () from /usr/lib/kde3/libkounavailpart.so #7 0xb6243e61 in KSpread::EmbeddedChart::loadOasis () from /usr/lib/libkspreadcommon.so.0 #8 0xb61b612a in KSpread::Cell::loadOasisObjects () from /usr/lib/libkspreadcommon.so.0 #9 0xb61cd9fb in KSpread::Cell::loadOasis () from /usr/lib/libkspreadcommon.so.0 #10 0xb62aea52 in KSpread::Sheet::loadRowFormat () from /usr/lib/libkspreadcommon.so.0 #11 0xb62b9ee5 in KSpread::Sheet::loadOasis () from /usr/lib/libkspreadcommon.so.0 #12 0xb6235c57 in KSpread::Map::loadOasis () from /usr/lib/libkspreadcommon.so.0 #13 0xb61e41f1 in KSpread::Doc::loadOasis () from /usr/lib/libkspreadcommon.so.0 #14 0xb7eee799 in KoDocument::loadOasisFromStore () from /usr/lib/libkofficecore.so.3 #15 0xb7ef7911 in KoDocument::loadNativeFormatFromStore () from /usr/lib/libkofficecore.so.3 #16 0xb7ef8193 in KoDocument::loadNativeFormat () from /usr/lib/libkofficecore.so.3 #17 0xb7ef0a95 in KoDocument::openFile () from /usr/lib/libkofficecore.so.3 #18 0xb7d91709 in KParts::ReadOnlyPart::openURL () from /usr/kde/3.5/lib/libkparts.so.2 #19 0xb7ef4e9a in KoDocument::openURL () from /usr/lib/libkofficecore.so.3 #20 0xb7f04723 in KoMainWindow::openDocumentInternal () from /usr/lib/libkofficecore.so.3 #21 0xb7f0b09b in KoMainWindow::openDocument () from /usr/lib/libkofficecore.so.3 #22 0xb7f0994d in KoMainWindow::slotFileOpen () from /usr/lib/libkofficecore.so.3 #23 0xb7f0d7e9 in KoMainWindow::qt_invoke () from /usr/lib/libkofficecore.so.3 #24 0xb6f236fe in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #25 0xb6f24240 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #26 0xb77be685 in KAction::activated () from /usr/kde/3.5/lib/libkdeui.so.4 #27 0xb77be6da in KAction::slotActivated () from /usr/kde/3.5/lib/libkdeui.so.4 #28 0xb77c126e in KAction::slotPopupActivated () from /usr/kde/3.5/lib/libkdeui.so.4 #29 0xb77c151b in KAction::qt_invoke () from /usr/kde/3.5/lib/libkdeui.so.4 #30 0xb6f236fe in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #31 0xb7234087 in QSignal::signal () from /usr/qt/3/lib/libqt-mt.so.3 #32 0xb6f3d8b9 in QSignal::activate () from /usr/qt/3/lib/libqt-mt.so.3 #33 0xb701bc45 in QPopupMenu::mouseReleaseEvent () from /usr/qt/3/lib/libqt-mt.so.3 #34 0xb77af297 in KPopupMenu::mouseReleaseEvent () from /usr/kde/3.5/lib/libkdeui.so.4 #35 0xb6f58b9c in QWidget::event () from /usr/qt/3/lib/libqt-mt.so.3 #36 0xb6ec8995 in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3 #37 0xb6ec96cd in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3 #38 0xb74f015f in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4 #39 0xb6e6d57b in QETWidget::translateMouseEvent () from /usr/qt/3/lib/libqt-mt.so.3 #40 0xb6e6c595 in QApplication::x11ProcessEvent () from /usr/qt/3/lib/libqt-mt.so.3 #41 0xb6e7b8aa in QEventLoop::processEvents () from /usr/qt/3/lib/libqt-mt.so.3 #42 0xb6ede35d in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3 #43 0xb6ede202 in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3 #44 0xb6ec84bb in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3 #45 0xb7f9632c in kdemain () from /usr/lib/libkdeinit_kspread.so
I'm not sure why it says I'm using KDE KDE 3.5.5, or Mandrake RPMs, but I'm on KDE 3.5.5 and Gentoo, if someone wants to edit the original report to make it easier to find.
Created an attachment (id=18765) [details] OpenDocument Spreadsheet test case to reproduce
Confirmed. Backtrace; Using host libthread_db library "/lib/tls/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1235249472 (LWP 29049)] [KCrash handler] #5 0xb6651947 in raise () from /lib/tls/libc.so.6 #6 0xb66530c9 in abort () from /lib/tls/libc.so.6 #7 0xb664b05f in __assert_fail () from /lib/tls/libc.so.6 #8 0xb61baca2 in KSpread::EmbeddedChart::chart (this=0x81e2460) at kspread_object.cc:677 #9 0xb61bedc5 in KSpread::EmbeddedChart::loadOasis (this=0x81e2460, element=@0xbff3d904, context=@0xbff3e350) at kspread_object.cc:616 #10 0xb6124cd0 in KSpread::Cell::loadOasisObjects (this=0x81df608, parent=@0xbff3dab8, oasisContext=@0xbff3e350) at kspread_cell.cc:6039 #11 0xb6144bc4 in KSpread::Cell::loadOasis (this=0x81df608, element=@0xbff3deb8, oasisContext=@0xbff3e350, style=0x0) at kspread_cell.cc:5953 #12 0xb622e021 in KSpread::Sheet::loadRowFormat (this=0x81d9fa0, row=@0xbff3e044, rowIndex=@0xbff3e06c, oasisContext=@0xbff3e350, styleMap=@0xbff3e254) at kspread_sheet.cc:6941 #13 0xb6234c84 in KSpread::Sheet::loadOasis (this=0x81d9fa0, sheetElement=@0xbff3e230, oasisContext=@0xbff3e350, styleMap=@0xbff3e254) at kspread_sheet.cc:6479 #14 0xb61af9ea in KSpread::Map::loadOasis (this=0x8121a78, body=@0xbff3e3c4, oasisContext=@0xbff3e350) at kspread_map.cc:331 #15 0xb6159f03 in KSpread::Doc::loadOasis (this=0x810a3b8, doc=@0xbff3e554, oasisStyles=@0xbff3e490, settings=@0xbff3e54c, store=0x817a300) at kspread_doc.cc:1054 #16 0xb7ef7b9f in KoDocument::loadOasisFromStore (this=0x810a3b8, store=0x817a300) at KoDocument.cpp:1898 #17 0xb7ef8547 in KoDocument::loadNativeFormatFromStore (this=0x810a3b8, file=@0xbff3e804) at KoDocument.cpp:1763 #18 0xb7ef9369 in KoDocument::loadNativeFormat (this=0x810a3b8, file=@0xbff3e804) at KoDocument.cpp:1737 #19 0xb7efa511 in KoDocument::openFile (this=0x810a3b8) at KoDocument.cpp:1525 #20 0xb7d707de in KParts::ReadOnlyPart::openURL () from /usr/lib/libkparts.so.2 #21 0xb7efb4ef in KoDocument::openURL (this=0x810a3b8, _url=@0xbff3ed60) at KoDocument.cpp:1375 #22 0xb7f1413a in KoMainWindow::openDocumentInternal (this=0x812a720, url=@0xbff3ed60, newdoc=0x810a3b8) at KoMainWindow.cpp:593 #23 0xb7f143cb in KoMainWindow::openDocument (this=0x812a720, newdoc=0x810a3b8, url=@0xbff3ed60) at KoMainWindow.cpp:575 in kspread_object.cc it asserts at; KoChart::Part* EmbeddedChart::chart() { assert( m_embeddedObject->document()->inherits( "KoChart::Part" ) ); return static_cast<KoChart::Part *>( m_embeddedObject->document() ); } m_embeddedObject->document()->metaObject()->className() is kunavailpart...
OK, I see which recent change broke this, I'll add a fix.
SVN commit 610998 by dfaure: Don't crash when the chart couldn't be loaded and we get KoUnavailPart instead. CCBUG: 138294 M +8 -4 kspread_object.cc --- branches/koffice/1.6/koffice/kspread/kspread_object.cc #610997:610998 @@ -613,7 +613,9 @@ setDataArea( range.range() ); } - chart()->setCanChangeValue( false ); + KoChart::Part* chartPart = chart(); + if ( chartPart ) + chartPart->setCanChangeValue( false ); } @@ -668,14 +670,16 @@ update(); - chart()->setCanChangeValue( false ); + KoChart::Part* chartPart = chart(); + if ( chartPart ) + chartPart->setCanChangeValue( false ); return true; } KoChart::Part* EmbeddedChart::chart() { - assert( m_embeddedObject->document()->inherits( "KoChart::Part" ) ); - return static_cast<KoChart::Part *>( m_embeddedObject->document() ); + // Returns 0 when the chart couldn't be loaded and we get KoUnavailPart instead. + return qt_cast<KoChart::Part *>( m_embeddedObject->document() ); } /**********************************************************
OK, crash is gone, but of course the chart loading still fails. Will reassign to kchart.
David: Is the same fix applicable to kchart 2.0 as well? I'll take care of the actual loading, but if something is wrong in the file, we don't want a crash.
Inge: I don't understand your question. Do you mean "to kspread 2.0"? I forwarded ported the crash-fix iirc.
Yes, I meant kspread 2.0. And thanks for forward porting.
duplicate of bug #32405 ?
Let's mark it as duplicate since the crasher was fixed and the remaining wish about a scatter-chart is just a duplicate of bug #32405 which has btw already >=125 votes. *** This bug has been marked as a duplicate of 32405 ***
You need to log in before you can comment on or make changes to this bug.