Bug 302835

Summary: Plugging in a USB Mass Storage Device crashes plasma-desktop [@ Plasma::Svg::paint]
Product: [Unmaintained] plasma4 Reporter: Jan Martinec <bugs.kde.org>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED UNMAINTAINED    
Severity: crash CC: cfeck, improvised
Priority: NOR    
Version: 4.8.3   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Jan Martinec 2012-07-01 14:56:17 UTC
Application: plasma-desktop (0.4)
KDE Platform Version: 4.8.3 (4.8.3)
Qt Version: 4.8.1
Operating System: Linux 3.2.0-26-generic x86_64
Distribution: Ubuntu 12.04 LTS

-- Information about the crash:
- What I was doing when the application crashed:
Plugged in a USB flash disk

Steps to reproduce: 
- Plug in a Mass Storage device, *any* such device (I've been able to reproduce the crash with various flash disks and other devices, from various manufacturers, with various sizes and partitions. All of these devices work correctly with other computers of various OS flavours)
- Device shows up normally in the kernel log
- Notification icon shows up in the notification area
- Device is not automounted (regardless of settings in the Removable devices panel)
- Within a second, plasma-desktop crashes
- The process automatically restarts, but crashes again
- The crash-restart loop continues as long as the device is plugged in; whether the device is mounted/unmounted through the command line has no effect)
- Unplugging the device stops the loop

The crash can be reproduced some of the time.

-- Backtrace:
Application: Shell plochy Plasma (plasma-desktop), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fd4b1695780 (LWP 2330))]

Thread 4 (Thread 0x7fd48c8c8700 (LWP 2435)):
#0  __pthread_mutex_unlock_usercnt (mutex=<optimized out>, decr=<optimized out>) at pthread_mutex_unlock.c:38
#1  __pthread_mutex_unlock (mutex=0x7fd488000a60) at pthread_mutex_unlock.c:290
#2  0x00007fd4a515d5d1 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fd4a512183b in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fd4a5121f5b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fd4a5122164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007fd4ae145426 in QEventDispatcherGlib::processEvents (this=0x7fd4880008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#7  0x00007fd4ae114c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#8  0x00007fd4ae114ed7 in QEventLoop::exec (this=0x7fd48c8c7dd0, flags=...) at kernel/qeventloop.cpp:204
#9  0x00007fd4ae013fa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#10 0x00007fd4ae0f49ff in QInotifyFileSystemWatcherEngine::run (this=0x28dfc00) at io/qfilesystemwatcher_inotify.cpp:248
#11 0x00007fd4ae016fcb in QThreadPrivate::start (arg=0x28dfc00) at thread/qthread_unix.cpp:298
#12 0x00007fd4a5a26e9a in start_thread (arg=0x7fd48c8c8700) at pthread_create.c:308
#13 0x00007fd4b0f744bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#14 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fd487226700 (LWP 2437)):
#0  end (this=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:102
#1  constEnd (this=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:272
#2  QTimerInfoList::timerWait (this=0x7fd480002660, tm=...) at kernel/qeventdispatcher_unix.cpp:455
#3  0x00007fd4ae14497c in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7fd487225c6c) at kernel/qeventdispatcher_glib.cpp:136
#4  0x00007fd4ae144a25 in timerSourcePrepare (source=<optimized out>, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#5  0x00007fd4a5121846 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007fd4a5121f5b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007fd4a5122164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007fd4ae145426 in QEventDispatcherGlib::processEvents (this=0x7fd4800008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#9  0x00007fd4ae114c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#10 0x00007fd4ae114ed7 in QEventLoop::exec (this=0x7fd487225dd0, flags=...) at kernel/qeventloop.cpp:204
#11 0x00007fd4ae013fa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#12 0x00007fd4ae0f49ff in QInotifyFileSystemWatcherEngine::run (this=0x2a66210) at io/qfilesystemwatcher_inotify.cpp:248
#13 0x00007fd4ae016fcb in QThreadPrivate::start (arg=0x2a66210) at thread/qthread_unix.cpp:298
#14 0x00007fd4a5a26e9a in start_thread (arg=0x7fd487226700) at pthread_create.c:308
#15 0x00007fd4b0f744bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#16 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fd47f7fe700 (LWP 2440)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fd4aaef9222 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#2  0x00007fd4aaef9259 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#3  0x00007fd4a5a26e9a in start_thread (arg=0x7fd47f7fe700) at pthread_create.c:308
#4  0x00007fd4b0f744bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fd4b1695780 (LWP 2330)):
[KCrash Handler]
#6  _mm_sub_epi16 (__B=..., __A=...) at painting/qdrawhelper_ssse3.cpp:179
#7  qt_blend_argb32_on_argb32_ssse3 (destPixels=<optimized out>, dbpl=1208, srcPixels=<optimized out>, sbpl=12, w=2147483645, h=308, const_alpha=256) at painting/qdrawhelper_ssse3.cpp:159
#8  0x00007fd4ad66419c in QRasterPaintEngine::drawImage (this=<optimized out>, r=..., img=..., sr=...) at painting/qpaintengine_raster.cpp:2453
#9  0x00007fd4ad66cbd3 in QRasterPaintEngine::drawPixmap (this=0xf805a50, r=..., pixmap=..., sr=...) at painting/qpaintengine_raster.cpp:2106
#10 0x00007fd4ad5f0945 in QPainter::drawPixmap (this=0x7fffb07364b0, r=..., pm=..., sr=...) at painting/qpainter.cpp:5468
#11 0x00007fd4b0b24349 in Plasma::Svg::paint (this=<optimized out>, painter=0x7fffb07364b0, rect=..., elementID=...) at ../../plasma/svg.cpp:675
#12 0x00007fd4b0b724f9 in Plasma::Separator::paint (this=0x71fc2b0, painter=0x7fffb07364b0, option=<optimized out>, widget=<optimized out>) at ../../plasma/widgets/separator.cpp:78
#13 0x00007fd4ada9e97d in _q_paintItem (item=<optimized out>, painter=0x7fffb07364b0, option=0x1bb9168, widget=0x302c4c0, useWindowOpacity=<optimized out>, painterStateProtection=true) at graphicsview/qgraphicsscene.cpp:4335
#14 0x00007fd4adab5ee4 in QGraphicsScenePrivate::drawItemHelper (this=0x1bb8f40, item=0x71fc2c0, painter=0x7fffb07364b0, option=0x1bb9168, widget=0x302c4c0, painterStateProtection=true) at graphicsview/qgraphicsscene.cpp:4431
#15 0x00007fd4adab834b in QGraphicsScenePrivate::draw (this=0x1bb8f40, item=0x71fc2c0, painter=0x7fffb07364b0, viewTransform=0x7fffb0736180, transformPtr=0x7fffb0735600, exposedRegion=0x2bd02d8, widget=0x302c4c0, opacity=1, effectTransform=0x0, wasDirtyParentSceneTransform=false, drawItem=true) at graphicsview/qgraphicsscene.cpp:4966
#16 0x00007fd4adab93d5 in QGraphicsScenePrivate::drawSubtreeRecursive (this=0x1bb8f40, item=0x71fc2c0, painter=0x7fffb07364b0, viewTransform=0x7fffb0736180, exposedRegion=0x2bd02d8, widget=0x302c4c0, parentOpacity=<optimized out>, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4857
#17 0x00007fd4adab8420 in QGraphicsScenePrivate::draw (this=0x1bb8f40, item=0x71f0810, painter=0x7fffb07364b0, viewTransform=0x7fffb0736180, transformPtr=0x7fffb0735c50, exposedRegion=0x2bd02d8, widget=0x302c4c0, opacity=1, effectTransform=0x0, wasDirtyParentSceneTransform=false, drawItem=true) at graphicsview/qgraphicsscene.cpp:4996
#18 0x00007fd4adab93d5 in QGraphicsScenePrivate::drawSubtreeRecursive (this=0x1bb8f40, item=0x71f0810, painter=0x7fffb07364b0, viewTransform=0x7fffb0736180, exposedRegion=0x2bd02d8, widget=0x302c4c0, parentOpacity=<optimized out>, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4857
#19 0x00007fd4adab9bf1 in QGraphicsScenePrivate::drawItems (this=0x1bb8f40, painter=0x7fffb07364b0, viewTransform=0x7fffb0736180, exposedRegion=0x2bd02d8, widget=0x302c4c0) at graphicsview/qgraphicsscene.cpp:4739
#20 0x00007fd4adad2870 in QGraphicsView::paintEvent (this=<optimized out>, event=<optimized out>) at graphicsview/qgraphicsview.cpp:3471
#21 0x00007fd4ad4e90f6 in QWidget::event (this=0x2f4a340, event=0x7fffb0736e50) at kernel/qwidget.cpp:8508
#22 0x00007fd4ad8a93b6 in QFrame::event (this=0x2f4a340, e=0x7fffb0736e50) at widgets/qframe.cpp:557
#23 0x00007fd4adad3b2b in QGraphicsView::viewportEvent (this=0x2f4a340, event=0x7fffb0736e50) at graphicsview/qgraphicsview.cpp:2866
#24 0x00007fd4ae116028 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>, receiver=0x302c4c0, event=0x7fffb0736e50) at kernel/qcoreapplication.cpp:986
#25 0x00007fd4ad49885f in notify_helper (e=0x7fffb0736e50, receiver=0x302c4c0, this=0x1a7dd30) at kernel/qapplication.cpp:4555
#26 QApplicationPrivate::notify_helper (this=0x1a7dd30, receiver=0x302c4c0, e=0x7fffb0736e50) at kernel/qapplication.cpp:4531
#27 0x00007fd4ad49d713 in QApplication::notify (this=0x1a68460, receiver=0x302c4c0, e=0x7fffb0736e50) at kernel/qapplication.cpp:4420
#28 0x00007fd4aedf3bb6 in KApplication::notify (this=0x1a68460, receiver=0x302c4c0, event=0x7fffb0736e50) at ../../kdeui/kernel/kapplication.cpp:311
#29 0x00007fd4ae115e9c in QCoreApplication::notifyInternal (this=0x1a68460, receiver=0x302c4c0, event=0x7fffb0736e50) at kernel/qcoreapplication.cpp:876
#30 0x00007fd4ad4e4d96 in sendSpontaneousEvent (event=0x7fffb0736e50, receiver=0x302c4c0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#31 QWidgetPrivate::drawWidget (this=0x2f4c000, pdev=0x7e69350, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x2f4b3e0) at kernel/qwidget.cpp:5585
#32 0x00007fd4ad4e5a0f in QWidgetPrivate::paintSiblingsRecursive (this=0x2bcfe50, pdev=0x7e69350, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x2f4b3e0) at kernel/qwidget.cpp:5794
#33 0x00007fd4ad4e4acc in QWidgetPrivate::drawWidget (this=0x2bcfe50, pdev=0x7e69350, rgn=..., offset=..., flags=<optimized out>, sharedPainter=0x0, backingStore=0x2f4b3e0) at kernel/qwidget.cpp:5638
#34 0x00007fd4ad4e5a0f in QWidgetPrivate::paintSiblingsRecursive (this=0x2bd59d0, pdev=0x7e69350, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x2f4b3e0) at kernel/qwidget.cpp:5794
#35 0x00007fd4ad4e4acc in QWidgetPrivate::drawWidget (this=0x2bd59d0, pdev=0x7e69350, rgn=..., offset=..., flags=<optimized out>, sharedPainter=0x0, backingStore=0x2f4b3e0) at kernel/qwidget.cpp:5638
#36 0x00007fd4ad6b5b58 in QWidgetBackingStore::sync (this=0x2f4b3e0) at painting/qbackingstore.cpp:1373
#37 0x00007fd4ad6b5f23 in QWidgetBackingStore::sync (this=0x2f4b3e0, exposedWidget=0x2f4c790, exposedRegion=...) at painting/qbackingstore.cpp:1161
#38 0x00007fd4ad516daa in QETWidget::translatePaintEvent (this=0x2f4c790, event=<optimized out>) at kernel/qapplication_x11.cpp:5584
#39 0x00007fd4ad517ebb in QApplication::x11ProcessEvent (this=0x1a68460, event=0x7fffb0738370) at kernel/qapplication_x11.cpp:3632
#40 0x00007fd4ad5410d2 in x11EventSourceDispatch (s=0x1a84140, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#41 0x00007fd4a5121d53 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007fd4a51220a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007fd4a5122164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007fd4ae1453bf in QEventDispatcherGlib::processEvents (this=0x19fbad0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#45 0x00007fd4ad540d5e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#46 0x00007fd4ae114c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#47 0x00007fd4ae114ed7 in QEventLoop::exec (this=0x7fffb0738710, flags=...) at kernel/qeventloop.cpp:204
#48 0x00007fd4ae119f67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#49 0x00007fd4b1280a13 in kdemain (argc=1, argv=0x7fffb0738af8) at ../../../../plasma/desktop/shell/main.cpp:120
#50 0x00007fd4b0ea376d in __libc_start_main (main=0x400640 <main(int, char**)>, argc=1, ubp_av=0x7fffb0738af8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffb0738ae8) at libc-start.c:226
#51 0x0000000000400671 in _start ()

Reported using DrKonqi
Comment 1 Jan Martinec 2012-07-01 15:07:02 UTC
It seems that I had multiple Panels on the same monitor, all at the bottom (only the latest was visible). Removing all of them, then re-adding the default panel fixes this issue for me - apparently the notification causes the crash if there are multiple panels in the same location. As such, perhaps this is related to #302640 , maybe even a duplicate?
Comment 2 Myriam Schweingruber 2012-08-06 02:08:55 UTC
Not related, at least not when it comes to the backtrace. This one looks more like a painting issue

*** This bug has been marked as a duplicate of bug 297821 ***
Comment 3 Christoph Feck 2013-12-29 18:18:05 UTC
Not a duplicate of bug 297821.
Comment 4 Christoph Feck 2013-12-29 18:19:13 UTC
*** Bug 329374 has been marked as a duplicate of this bug. ***
Comment 5 Nate Graham 2018-06-08 19:08:15 UTC
Hello!

This bug report was filed for KDE Plasma 4, which reached end-of-support status in August 2015. KDE Plasma 5's desktop shell has been almost completely rewritten for better performance and usability, so it is likely that this bug is already resolved in Plasma 5.

Accordingly, we hope you understand why we must close this bug report. If the issue described  here is still present in KDE Plasma 5.12 or later, please feel free to open a new ticket in the "plasmashell" product after reading https://community.kde.org/Get_Involved/Bug_Reporting

If you would like to get involved in KDE's bug triaging effort so that future mass bug closes like this are less likely, please read https://community.kde.org/Get_Involved#Bug_Triaging

Thanks for your understanding!

Nate Graham