Bug 165785 - Plasmoid download via GetHotNewStuff Crash
Summary: Plasmoid download via GetHotNewStuff Crash
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Unmaintained
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 166338 166399 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-07-05 12:43 UTC by Bernhard Friedreich
Modified: 2008-07-16 15:01 UTC (History)
3 users (show)

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


Attachments
patch to use mimetype detection instead of hardcoded KZip (1.41 KB, patch)
2008-07-15 10:26 UTC, Michael Leupold
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bernhard Friedreich 2008-07-05 12:43:18 UTC
Version:            (using Devel)
Installed from:    Compiled sources
Compiler:          g++ (SUSE Linux) 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036]
 
OS:                Linux

Itried to download QuickAccess (a plasmoid) via GetHowNewStuff and I got a crash in plasmapkg stating that the install wasn't successfull.... seems pretty weird to me to initiate a crash report if install fails ^^
it also states it has been installed (but it doesn't show up in the Add Widgets Dialog.

The crash report is so short I'll attach it directly here:

Application: Plasma Package Manager (plasmapkg), signal SIGABRT
[?1034h[Thread debugging using libthread_db enabled]
[New Thread 0xb48d6910 (LWP 21893)]
[KCrash handler]
#6  0xffffe430 in __kernel_vsyscall ()
#7  0xb5a27900 in raise () from /lib/libc.so.6
#8  0xb5a29238 in abort () from /lib/libc.so.6
#9  0xb69a9883 in qt_message_output (msgType=QtFatalMsg, 
    buf=0x8122f80 "plasmapkg(21893)/plasma: Installation of  \"/tmp/friedreb-kde4/kde-friedreb///84128-quickaccess-0.4.tar.gz\"  failed! ")
    at global/qglobal.cpp:2058
#10 0x0804cbda in ~QDebug (this=0xbff1c5cc)
    at /home/friedreb/qt-copy/include/QtCore/../../src/corelib/io/qdebug.h:85
#11 0x0804b971 in main (argc=)
    at /kde/src/KDE/kdebase/workspace/plasma/tools/plasmapkg/main.cpp:145
#0  0xffffe430 in __kernel_vsyscall ()
Comment 1 Bernhard Friedreich 2008-07-05 12:57:17 UTC
this line seems to be responsible for this... as far as I can see all errors are reported by kfatal<<"message" which seems to open the crash dialog...
imho there should just be some kind of an error messagebox.

the specific line (to give an example):
kFatal() << "Installation of " << package << " failed!";

my proposal in Qt syntax ...no idea about KDE programming yet :-(
QMessageBox::critical(this, tr("Failure installing package"), tr("There has been an error during the install of package: ") + package);
Comment 2 Andreas Silberstorff 2008-07-06 00:02:51 UTC
I can confirm a crash when trying to download a plasmoid.
I tried three times to download the weather plasmoid via GHNT. The first time I clicked install I was asked for a cookie-confirmation befor plasma crashed. The other trials failed imediately after clicking install.

My KDE is Version KDE 4.0.83 (KDE 4.1 Beta2) from SUSE 10.3 build service repository KDE4:Unstable.

Anwendung: Plasma-Arbeitsfläche (plasma), Signal SIGABRT
[?1034hUsing host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 0xb4a516f0 (LWP 3463)]
[New Thread 0xb199fb90 (LWP 3467)]
[New Thread 0xb21a0b90 (LWP 3466)]
[KCrash handler]
#6  0xffffe410 in __kernel_vsyscall ()
#7  0xb5acf8f5 in raise () from /lib/libc.so.6
#8  0xb5ad11e1 in abort () from /lib/libc.so.6
#9  0xb6983d15 in qt_message_output () from /usr/lib/libQtCore.so.4
#10 0xb6983dd8 in qFatal () from /usr/lib/libQtCore.so.4
#11 0xb761ed61 in KStandardDirs::saveLocation () from /usr/lib/libkdecore.so.5
#12 0xb761ef4a in KStandardDirs::locateLocal () from /usr/lib/libkdecore.so.5
#13 0xb761f03f in KStandardDirs::locateLocal () from /usr/lib/libkdecore.so.5
#14 0xb747fed3 in KNS::CoreEngine::install () from /usr/lib/libknewstuff2.so.4
#15 0xb7482915 in KNS::CoreEngine::slotPayloadResult ()
   from /usr/lib/libknewstuff2.so.4
#16 0xb748b646 in KNS::CoreEngine::qt_metacall ()
   from /usr/lib/libknewstuff2.so.4
#17 0xb7496fca in KNS::DxsEngine::qt_metacall ()
   from /usr/lib/libknewstuff2.so.4
#18 0xb74ae71a in KNS::EnginePrivate::qt_metacall ()
   from /usr/lib/libknewstuff2.so.4
#19 0xb6a7136a in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#20 0xb6a717b2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#21 0xb75f37c3 in KJob::result () from /usr/lib/libkdecore.so.5
#22 0xb75f4142 in KJob::emitResult () from /usr/lib/libkdecore.so.5
#23 0xb7c272d7 in KIO::FileCopyJob::slotResult () from /usr/lib/libkio.so.5
#24 0xb7c2cef8 in KIO::FileCopyJob::qt_metacall () from /usr/lib/libkio.so.5
#25 0xb6a7136a in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#26 0xb6a717b2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#27 0xb75f37c3 in KJob::result () from /usr/lib/libkdecore.so.5
#28 0xb75f4142 in KJob::emitResult () from /usr/lib/libkdecore.so.5
#29 0xb7c1e193 in KIO::SimpleJob::slotFinished () from /usr/lib/libkio.so.5
#30 0xb7c232cf in KIO::TransferJob::slotFinished () from /usr/lib/libkio.so.5
#31 0xb7c2d203 in KIO::TransferJob::qt_metacall () from /usr/lib/libkio.so.5
#32 0xb6a7136a in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#33 0xb6a717b2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#34 0xb7ccc597 in KIO::SlaveInterface::finished () from /usr/lib/libkio.so.5
#35 0xb7ccee2c in KIO::SlaveInterface::dispatch () from /usr/lib/libkio.so.5
#36 0xb7ccce77 in KIO::SlaveInterface::dispatch () from /usr/lib/libkio.so.5
#37 0xb7cbe900 in KIO::Slave::gotInput () from /usr/lib/libkio.so.5
#38 0xb7cbea9d in KIO::Slave::qt_metacall () from /usr/lib/libkio.so.5
#39 0xb6a7136a in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#40 0xb6a717b2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#41 0xb7bed5d7 in KIO::Connection::readyRead () from /usr/lib/libkio.so.5
#42 0xb7bef5cb in KIO::ConnectionPrivate::dequeue () from /usr/lib/libkio.so.5
#43 0xb7bef68e in KIO::Connection::qt_metacall () from /usr/lib/libkio.so.5
#44 0xb6a6d9db in QMetaCallEvent::placeMetaCall () from /usr/lib/libQtCore.so.4
#45 0xb6a702b3 in QObject::event () from /usr/lib/libQtCore.so.4
#46 0xb5f3700c in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#47 0xb5f3dff9 in QApplication::notify () from /usr/lib/libQtGui.so.4
#48 0xb79f1a0d in KApplication::notify () from /usr/lib/libkdeui.so.5
#49 0xb6a60d09 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#50 0xb6a6200d in QCoreApplicationPrivate::sendPostedEvents ()
   from /usr/lib/libQtCore.so.4
#51 0xb6a621bd in QCoreApplication::sendPostedEvents ()
   from /usr/lib/libQtCore.so.4
#52 0xb5fbcb28 in QEventDispatcherX11::processEvents ()
   from /usr/lib/libQtGui.so.4
#53 0xb6a5ff9d in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#54 0xb6a60131 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#55 0xb74ad9d7 in KNS::EnginePrivate::workflow ()
   from /usr/lib/libknewstuff2.so.4
#56 0xb74adbc7 in KNS::Engine::downloadDialogModal ()
   from /usr/lib/libknewstuff2.so.4
#57 0xb7ea7540 in Plasma::AppletBrowserWidget::downloadWidgets ()
   from /usr/lib/libplasma.so.2
#58 0xb7ea83e3 in Plasma::AppletBrowserWidget::qt_metacall ()
   from /usr/lib/libplasma.so.2
#59 0xb6a7136a in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#60 0xb6a716c0 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#61 0xb5f30d51 in QAction::triggered () from /usr/lib/libQtGui.so.4
#62 0xb5f31d9f in QAction::activate () from /usr/lib/libQtGui.so.4
#63 0xb62b0cfe in QMenuPrivate::activateAction () from /usr/lib/libQtGui.so.4
#64 0xb62b1bdd in QMenu::mouseReleaseEvent () from /usr/lib/libQtGui.so.4
#65 0xb7ab1dff in KMenu::mouseReleaseEvent () from /usr/lib/libkdeui.so.5
#66 0xb5f8613a in QWidget::event () from /usr/lib/libQtGui.so.4
#67 0xb62aedb5 in QMenu::event () from /usr/lib/libQtGui.so.4
#68 0xb5f3700c in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#69 0xb5f3e5c5 in QApplication::notify () from /usr/lib/libQtGui.so.4
#70 0xb79f1a0d in KApplication::notify () from /usr/lib/libkdeui.so.5
#71 0xb6a60d09 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#72 0xb5f3d700 in QApplicationPrivate::sendMouseEvent ()
   from /usr/lib/libQtGui.so.4
#73 0xb5f992d4 in QETWidget::translateMouseEvent () from /usr/lib/libQtGui.so.4
#74 0xb5f9874b in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#75 0xb5fbcc3c in QEventDispatcherX11::processEvents ()
   from /usr/lib/libQtGui.so.4
#76 0xb6a5ff9d in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#77 0xb6a60131 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#78 0xb62b1e69 in QMenu::exec () from /usr/lib/libQtGui.so.4
#79 0xb62bd197 in QPushButtonPrivate::_q_popupPressed ()
   from /usr/lib/libQtGui.so.4
#80 0xb62bd95a in QPushButton::qt_metacall () from /usr/lib/libQtGui.so.4
#81 0xb7abf29a in KPushButton::qt_metacall () from /usr/lib/libkdeui.so.5
#82 0xb6a7136a in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#83 0xb6a717b2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#84 0xb6485257 in QAbstractButton::pressed () from /usr/lib/libQtGui.so.4
#85 0xb622abb9 in QAbstractButtonPrivate::emitPressed ()
   from /usr/lib/libQtGui.so.4
#86 0xb622ad7e in QAbstractButton::mousePressEvent ()
   from /usr/lib/libQtGui.so.4
#87 0xb7abec41 in KPushButton::mousePressEvent () from /usr/lib/libkdeui.so.5
#88 0xb5f862d3 in QWidget::event () from /usr/lib/libQtGui.so.4
#89 0xb622bdcf in QAbstractButton::event () from /usr/lib/libQtGui.so.4
#90 0xb62bd7c2 in QPushButton::event () from /usr/lib/libQtGui.so.4
#91 0xb5f3700c in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#92 0xb5f3e5c5 in QApplication::notify () from /usr/lib/libQtGui.so.4
#93 0xb79f1a0d in KApplication::notify () from /usr/lib/libkdeui.so.5
#94 0xb6a60d09 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#95 0xb5f3d700 in QApplicationPrivate::sendMouseEvent ()
   from /usr/lib/libQtGui.so.4
#96 0xb5f9907f in QETWidget::translateMouseEvent () from /usr/lib/libQtGui.so.4
#97 0xb5f9874b in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#98 0xb5fbcc3c in QEventDispatcherX11::processEvents ()
   from /usr/lib/libQtGui.so.4
#99 0xb6a5ff9d in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#100 0xb6a60131 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#101 0xb6a6227a in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#102 0xb5f36707 in QApplication::exec () from /usr/lib/libQtGui.so.4
#103 0xb7f85186 in kdemain () from /usr/lib/libkdeinit4_plasma.so
#104 0x080487f2 in main ()
#0  0xffffe410 in __kernel_vsyscall ()
Comment 3 Bernhard Friedreich 2008-07-06 00:08:18 UTC
hm.. your's seems to be a much bigger deal.. mine's more like a minor thing (changing some one liners of which I don't even know if they are intentionally written like this.. but seems unlikely to me)
Comment 4 Sebastian Sauer 2008-07-06 00:22:17 UTC
backtrace from comment #2 is a duplicate of bug #164411 and was fixed with r823774 aka 4.0.84
Comment 5 Florian Eßer 2008-07-12 10:33:37 UTC
Same problem here, using today's kde-nightly packages in Kubuntu.

Debug info:

Application: Plasma Package Manager (plasmapkg), signal SIGABRT

Thread 1 (Thread 0xb5a109a0 (LWP 9251)):
[KCrash Handler]
#6  0xb7f9a410 in __kernel_vsyscall ()
#7  0xb7533085 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0xb7534a01 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0xb7ca1755 in qt_message_output () from /opt/kde-nightly/lib/libQtCore.so.4
#10 0x0804c33e in ?? ()
#11 0x0804abd9 in _start ()
Comment 6 Christophe Marin 2008-07-12 19:31:42 UTC
*** Bug 166338 has been marked as a duplicate of this bug. ***
Comment 7 Christophe Marin 2008-07-12 22:41:15 UTC
*** Bug 166399 has been marked as a duplicate of this bug. ***
Comment 8 Michael Leupold 2008-07-15 09:58:20 UTC
There's actually 2 problems I see:
1) plasmapkg uses KZip to open files downloaded using GHNS whereas the files themselves are gzipped tar files.
2) plasmapkg quitting with a fatal error brings up drkonqi instead of an error message.
Comment 9 Michael Leupold 2008-07-15 10:26:11 UTC
Created attachment 26142 [details]
patch to use mimetype detection instead of hardcoded KZip

My first try at patching this by detecting the mimetype and opening the package
as tar (possibly compressed) or zip depending on that. Unfortunately that still
doesn't make it work as the packages in the stream still miss metadata files
:-)
Comment 10 Aaron J. Seigo 2008-07-15 16:42:40 UTC
the reason it assume zip files is because the package format is defined as being a zip file.

the reasons for this decision is that it is more consistent with other similar widget package formats out there and opens the door for us to eventually provide support for compressed widgets (something tarballs really aren't very great for).

the patch, btw, leaks the archive object in a few places. before every early return; statement a "delete archive;" would be needed. =)

otherwise, the patch looks good ... i just don't think it fits with the design.
Comment 11 Michael Leupold 2008-07-15 18:15:46 UTC
Well, I probably should have asked given the format of the files currently downloadable didn't have the metainfo either :-) (thanks for the leak hint. I guess I should be more considerate with 10-minute coffee-break fixes)
Comment 12 Aaron J. Seigo 2008-07-15 18:28:48 UTC
SVN commit 832855 by aseigo:

use cout instead of kdebug/kfatal
BUG:165785


 M  +17 -8     main.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=832855
Comment 13 Bohan 2008-07-16 15:01:01 UTC
I still have this problem in 4.0.98 (Release 7.1 openSUSE):

Application: Plasma Package Manager (plasmapkg), signal SIGABRT
[?1034h[Thread debugging using libthread_db enabled]
[New Thread 0x7fb7cebcc740 (LWP 2766)]
[KCrash handler]
#5  0x00007fb7d1ce65c5 in raise () from /lib64/libc.so.6
#6  0x00007fb7d1ce7bb3 in abort () from /lib64/libc.so.6
#7  0x00007fb7d600ca95 in qt_message_output (msgType=QtFatalMsg, 
    buf=<value optimized out>) at global/qglobal.cpp:2058
#8  0x00000000004048be in ~QDebug (this=0x7fffe14f4d30)
    at /usr/include/QtCore/qdebug.h:85
#9  0x0000000000403c6c in main (argc=3, argv=0x7fffe14f54a8)
    at /usr/src/debug/kdebase-workspace-4.0.98/plasma/tools/plasmapkg/main.cpp:145
#0  0x00007fb7d1d56230 in nanosleep () from /lib64/libc.so.6

Upon accessing the interface again, the previously 'crash installed' widgets will show as 'installed' (button changes to uninstall) but the widgets cannot be added to dashboard (they don't show up in the list).