Bug 227394 - Picture Frame Widget Freezes Plasma-desktop
Summary: Picture Frame Widget Freezes Plasma-desktop
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: widget-frame (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: Anne-Marie Mahfouf
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-17 17:15 UTC by Zachary Klein
Modified: 2011-12-03 11:44 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (10.26 KB, text/plain)
2011-11-03 10:44 UTC, turtle
Details
New crash information added by DrKonqi (15.26 KB, text/plain)
2011-11-04 07:39 UTC, turtle
Details
New crash information added by DrKonqi (9.55 KB, text/plain)
2011-11-09 09:41 UTC, turtle
Details
New crash information added by DrKonqi (10.92 KB, text/plain)
2011-11-11 07:39 UTC, turtle
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Zachary Klein 2010-02-17 17:15:13 UTC
Version:            (using KDE 4.4.0)
OS:                Linux
Installed from:    openSUSE RPMs

I am using a pair of Picture Frame widgets to display a slideshow of images froma remote Samba share. While loading the image ( KExiv2Iface::KExiv2::getImageOrientation), the entire plasma-desktop freezes, taking longer (up to 20 seconds) if the image requires the frame to resize ("ItemSpace::resizeItem"). Since displaying remote pictures is a fairly common use case, shouldn't widgets like Picture Frame be able to wait for their response without freezing the entire desktop?

I understand that there may be technical issues with this, but a 20 second freeze in the desktop surely isn't acceptable, is it?
Comment 1 Zachary Klein 2010-02-17 17:19:57 UTC
I also should mention that Ive been using Picture Frames to display remote images since KDE 4.2; this is the first time I've noticed this issue (I can't garrantee that it wasn't happening before, but I doubt it).
Comment 2 Tomasz Czapiewski 2010-02-22 21:42:45 UTC
I'm expecting the same behaviour on two machines which I've upgraded to KDE 4.4 but the pictures folders are on local ext3 and ext4 filesystems.
Picture Frame with changing images is unusable in KDE 4.4.0.
Comment 3 Tomasz Czapiewski 2010-02-22 21:45:53 UTC
And that's on Kubuntu 9.10 with KDE 4.4 upgrade from kubuntu-ppa/backports repository.
And I don't have many pictures in folders (~100 images+videos) and everything there is indexed with Nepomuk+Strigi.
Comment 4 dusdus 2010-03-05 02:11:36 UTC
(In reply to comment #0)
> Version:            (using KDE 4.4.0)
> OS:                Linux
> Installed from:    openSUSE RPMs
> 
> I am using a pair of Picture Frame widgets to display a slideshow of images
> froma remote Samba share. While loading the image (
> KExiv2Iface::KExiv2::getImageOrientation), the entire plasma-desktop freezes,
> taking longer (up to 20 seconds) if the image requires the frame to resize
> ("ItemSpace::resizeItem"). Since displaying remote pictures is a fairly common
> use case, shouldn't widgets like Picture Frame be able to wait for their
> response witrhout freezing the entire desktop?
> 
> I understand that there may be technical issues with this, but a 20 second
> freeze in the desktop surely isn't acceptable, is it?

I'm having exactly the same issue, while using kde 4.4 un kubuntu (using the backports repository). I'm not using the PictureFrame though. I'm using the wallpaper slideshow. After disabling this feature the hicups were gone. 
The wallpaper changed every 2 minutes, the hicups I got every 15 seconds or so.
Comment 5 Anne-Marie Mahfouf 2010-03-05 13:04:52 UTC
Tomasz and Zachary: same on desktop slideshow mode with same pictures folders and settings than Picture Frame?
Comment 6 Zachary Klein 2010-03-05 16:25:32 UTC
The desktop slideshow (using a remote image source) doesn't cause plasma-desktop to freeze. It has it's own problem - an annoying workaround that preloads a bunch of images every minute or so (with an "in-your-face" dialog box to let you know all about it!). But no, it doesn't seem to cause this issue to come up.
Comment 7 Anne-Marie Mahfouf 2011-10-22 14:53:33 UTC
Is this still valid please?
Comment 8 turtle 2011-11-03 10:44:48 UTC
Created attachment 65188 [details]
New crash information added by DrKonqi

plasma-desktop (0.4) on KDE Platform 4.7.2 (4.7.2) using Qt 4.7.4

- What I was doing when the application crashed: I was adding one more widget on the desktop while the widget that caused the crash has just been edited with a new picture url and was updating/downloading the picture

- Unusual behavior I noticed: The desktop froze then re-started, the widget updated afterwards

-- Backtrace (Reduced):
#7  0x004c05cb in QByteArray (a=..., this=0xbf92edb0) at /usr/include/qt4/QtCore/qbytearray.h:421
#8  KIO::StoredTransferJob::data (this=0xa97dd48) at ../../kio/kio/job.cpp:1708
#9  0x0298d586 in Picture::slotFinished (this=0x9c24c10, job=0xa0d39f8) at ../../../applets/frame/picture.cpp:148
#10 0x0298df95 in Picture::qt_metacall (this=0x9c24c10, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0xbf92ef18) at ./picture.moc:82
#11 0x08d35b7d in metacall (argv=0xbf92ef18, idx=5, cl=QMetaObject::InvokeMetaMethod, object=0x9c24c10) at kernel/qmetaobject.cpp:237
Comment 9 turtle 2011-11-04 07:39:35 UTC
Created attachment 65221 [details]
New crash information added by DrKonqi

plasma-desktop (0.4) on KDE Platform 4.7.2 (4.7.2) using Qt 4.7.4

- What I was doing when the application crashed: Editing the properties of one of the picture frames while another was in the process of updating the picture (all pictures are fetched from the net and not stored locally)

-- Backtrace (Reduced):
#7  0x004a65cb in QByteArray (a=..., this=0xbffc35b0) at /usr/include/qt4/QtCore/qbytearray.h:421
#8  KIO::StoredTransferJob::data (this=0x9e06b78) at ../../kio/kio/job.cpp:1708
#9  0x0816c586 in Picture::slotFinished (this=0x9612a70, job=0xa58b9a0) at ../../../applets/frame/picture.cpp:148
#10 0x0816cf95 in Picture::qt_metacall (this=0x9612a70, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0xbffc3718) at ./picture.moc:82
#11 0x08497b7d in metacall (argv=0xbffc3718, idx=5, cl=QMetaObject::InvokeMetaMethod, object=0x9612a70) at kernel/qmetaobject.cpp:237
Comment 10 turtle 2011-11-09 09:41:13 UTC
Created attachment 65431 [details]
New crash information added by DrKonqi

plasma-desktop (0.4) on KDE Platform 4.7.2 (4.7.2) using Qt 4.7.4

- What I was doing when the application crashed:
I was opening the setting dialog of my picture widgets so as to force them to update upon closing the dialog. At the same time, I attached a USB hub but as this went undetected by Kubuntu, I doubt it had any influence.

-- Backtrace (Reduced):
#7  0x001d05cb in QByteArray (a=..., this=0xbfe0f0d0) at /usr/include/qt4/QtCore/qbytearray.h:421
#8  KIO::StoredTransferJob::data (this=0xa6efc20) at ../../kio/kio/job.cpp:1708
#9  0x054a3586 in Picture::slotFinished (this=0x9caf6b0, job=0xa8b3600) at ../../../applets/frame/picture.cpp:148
#10 0x054a3f95 in Picture::qt_metacall (this=0x9caf6b0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0xbfe0f238) at ./picture.moc:82
#11 0x06147b7d in metacall (argv=0xbfe0f238, idx=5, cl=QMetaObject::InvokeMetaMethod, object=0x9caf6b0) at kernel/qmetaobject.cpp:237
Comment 11 turtle 2011-11-11 07:39:15 UTC
Created attachment 65508 [details]
New crash information added by DrKonqi

plasma-desktop (0.4) on KDE Platform 4.7.2 (4.7.2) using Qt 4.7.4

- What I was doing when the application crashed:
Refresing one of the 5 picture widgets on the dewstop (pressing ok, to close the widget settings)

-- Backtrace (Reduced):
#16 0x021e9d82 in makeSpace (where=QIODevicePrivateLinearBuffer::freeSpaceAtEnd, required=<optimized out>, this=0x9542b50) at io/qiodevice_p.h:173
#17 reserve (size=16384, this=0x9542b50) at io/qiodevice_p.h:114
#18 QIODevice::read (this=0xbfd0ea88, data=0xbfd0e766 "\177\t\006", maxSize=6) at io/qiodevice.cpp:824
#19 0x033837df in readIconDir (iodev=<optimized out>, iconDir=0xbfd0e7a8) at qicohandler.cpp:184
#20 0x033839ca in ICOReader::canRead (iodev=0xbfd0ea88) at qicohandler.cpp:272
Comment 12 Anne-Marie Mahfouf 2011-11-11 08:52:51 UTC
@turtle please indicate clear steps to reproduce: what settings you use and what images you display for each picture frame (example of an URL that makes it crash) and how to trigger the crash. 

@Zachary and Tomasz: the widget has been highly optimized thanks to Aaron Seigo work!
Comment 13 Aaron J. Seigo 2011-12-03 11:44:05 UTC
Git commit 2967918a990524b7e85e9cd6928e10ad4fe17b5f by Aaron Seigo.
Committed on 03/12/2011 at 12:43.
Pushed by aseigo into branch 'master'.

don't hold on to the job pointer, it gets passed back to us in the completion slot

BUG:227394

M  +4    -4    applets/frame/picture.cpp
M  +0    -1    applets/frame/picture.h

http://commits.kde.org/kdeplasma-addons/2967918a990524b7e85e9cd6928e10ad4fe17b5f