Bug 258010 - Knotify crash
Summary: Knotify crash
Status: RESOLVED FIXED
Alias: None
Product: kdelibs
Classification: Frameworks and Libraries
Component: knotify (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Jacopo De Simoi
URL:
Keywords:
: 258104 258843 259078 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-11-26 19:54 UTC by Dave Plater
Modified: 2010-12-09 22:50 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.5.85


Attachments
New crash information added by DrKonqi (7.11 KB, text/plain)
2010-11-27 10:10 UTC, Dave Plater
Details
New crash information added by DrKonqi (9.99 KB, text/plain)
2010-11-27 11:01 UTC, Dave Plater
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dave Plater 2010-11-26 19:54:24 UTC
Application: knotify4 (4.0)
KDE Platform Version: 4.5.80 (4.6 Beta1)
Qt Version: 4.7.1
Operating System: Linux 2.6.34.7-0.5-desktop x86_64
Distribution: "openSUSE 11.3 (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:
I had ejected a data dvd and had just loaded a blank DVDR
This is after freshly updating to kde4.6 beta

-- Backtrace:
Application: KNotify (knotify4), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f62f64c3760 (LWP 2708))]

Thread 6 (Thread 0x7f62e4a2d710 (LWP 2711)):
#0  0x00007f62f18960b4 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007f62f0d3bdef in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f62f0d3ce69 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f62f0d3d510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f62f3eb6ae6 in QEventDispatcherGlib::processEvents (this=0x7e19b0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#5  0x00007f62f3e8b262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#6  0x00007f62f3e8b475 in QEventLoop::exec (this=0x7f62e4a2cde0, flags=...) at kernel/qeventloop.cpp:201
#7  0x00007f62f3d9e1a4 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#8  0x00007f62f3e6c918 in QInotifyFileSystemWatcherEngine::run (this=0x7edba0) at io/qfilesystemwatcher_inotify.cpp:248
#9  0x00007f62f3da0a1e in QThreadPrivate::start (arg=0x7edba0) at thread/qthread_unix.cpp:285
#10 0x00007f62f1893a4f in start_thread () from /lib64/libpthread.so.0
#11 0x00007f62f378e82d in clone () from /lib64/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f62dd043710 (LWP 3079)):
#0  0x00007f62f1898709 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f62e379e9b1 in metronom_sync_loop () from /usr/lib64/libxine.so.1
#2  0x00007f62f1893a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007f62f378e82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f62dc842710 (LWP 3082)):
#0  0x00007f62f3785698 in poll () from /lib64/libc.so.6
#1  0x00007f62f0d3cfd4 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f62f0d3d510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f62f3eb6ae6 in QEventDispatcherGlib::processEvents (this=0x8309d0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007f62f3e8b262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f62f3e8b475 in QEventLoop::exec (this=0x7f62dc841dd0, flags=...) at kernel/qeventloop.cpp:201
#6  0x00007f62f3d9e1a4 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7  0x00007f62e39fc5e4 in ?? () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#8  0x00007f62f3da0a1e in QThreadPrivate::start (arg=0x7f8e30) at thread/qthread_unix.cpp:285
#9  0x00007f62f1893a4f in start_thread () from /lib64/libpthread.so.0
#10 0x00007f62f378e82d in clone () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f62dbe37710 (LWP 3087)):
#0  0x00007f62f37856b3 in poll () from /lib64/libc.so.6
#1  0x00007f62dbe3c907 in ao_alsa_handle_event_thread () from /usr/lib64/xine/plugins/1.28/xineplug_ao_out_alsa.so
#2  0x00007f62f1893a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007f62f378e82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f62db636710 (LWP 3088)):
#0  0x00007f62f189839c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f62e37b093b in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007f62f1893a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007f62f378e82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f62f64c3760 (LWP 2708)):
[KCrash Handler]
#6  Solid::StorageAccess::isAccessible (this=0x0) at /usr/src/debug/kdelibs-4.5.80/solid/solid/storageaccess.cpp:68
#7  0x0000000000419530 in KSolidNotify::isSafelyRemovable (this=<value optimized out>, udi=...) at /usr/src/debug/kdebase-runtime-4.5.80/knotify/ksolidnotify.cpp:106
#8  0x000000000041a188 in KSolidNotify::storageEjectDone (this=0x7ec1a0, error=Solid::NoError, errorData=..., udi=...) at /usr/src/debug/kdebase-runtime-4.5.80/knotify/ksolidnotify.cpp:192
#9  0x000000000041a9ad in KSolidNotify::qt_metacall (this=0x7ec1a0, _c=<value optimized out>, _id=<value optimized out>, _a=0x7fff6e47e9d0)
    at /usr/src/debug/kdebase-runtime-4.5.80/build/knotify/ksolidnotify.moc:84
#10 0x00007f62f3ea0fef in QMetaObject::activate (sender=0x8386c0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff6e47e9d0) at kernel/qobject.cpp:3272
#11 0x00007f62f57d72ab in Solid::OpticalDrive::ejectDone (this=<value optimized out>, _t1=Solid::NoError, _t2=<value optimized out>, _t3=<value optimized out>)
    at /usr/src/debug/kdelibs-4.5.80/build/solid/solid/opticaldrive.moc:173
#12 0x00007f62f57d7472 in Solid::OpticalDrive::qt_metacall (this=0x8386c0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fff6e47eb30)
    at /usr/src/debug/kdelibs-4.5.80/build/solid/solid/opticaldrive.moc:127
#13 0x00007f62f3ea0fef in QMetaObject::activate (sender=0x89c690, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff6e47eb30) at kernel/qobject.cpp:3272
#14 0x00007f62f580123b in Solid::Backends::Hal::Cdrom::ejectDone (this=<value optimized out>, _t1=Solid::NoError, _t2=<value optimized out>, _t3=<value optimized out>)
    at /usr/src/debug/kdelibs-4.5.80/build/solid/solid/backends/hal/halcdrom.moc:122
#15 0x00007f62f5801c75 in Solid::Backends::Hal::Cdrom::slotEjectDone (this=0x89c690, error=0, errorString=...) at /usr/src/debug/kdelibs-4.5.80/solid/solid/backends/hal/halcdrom.cpp:215
#16 0x00007f62f5801db6 in Solid::Backends::Hal::Cdrom::qt_metacall (this=0x89c690, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff6e47ee00)
    at /usr/src/debug/kdelibs-4.5.80/build/solid/solid/backends/hal/halcdrom.moc:103
#17 0x00007f62f41e23b8 in QDBusConnectionPrivate::deliverCall (this=0x6459e0, object=0x89c690, msg=..., metaTypes=..., slotIdx=12) at qdbusintegrator.cpp:919
#18 0x00007f62f41edf5f in QDBusCallDeliveryEvent::placeMetaCall (this=<value optimized out>, object=<value optimized out>) at qdbusintegrator_p.h:103
#19 0x00007f62f3e9fc6a in QObject::event (this=0x89c690, e=<value optimized out>) at kernel/qobject.cpp:1211
#20 0x00007f62f4ab4cd4 in QApplicationPrivate::notify_helper (this=0x651f50, receiver=0x89c690, e=0xa9f1e0) at kernel/qapplication.cpp:4445
#21 0x00007f62f4abd1ca in QApplication::notify (this=<value optimized out>, receiver=0x89c690, e=0xa9f1e0) at kernel/qapplication.cpp:4324
#22 0x00007f62f5e5d976 in KApplication::notify (this=0x7fff6e47f910, receiver=0x89c690, event=0xa9f1e0) at /usr/src/debug/kdelibs-4.5.80/kdeui/kernel/kapplication.cpp:311
#23 0x00007f62f3e8be2c in QCoreApplication::notifyInternal (this=0x7fff6e47f910, receiver=0x89c690, event=0xa9f1e0) at kernel/qcoreapplication.cpp:732
#24 0x00007f62f3e8f625 in sendEvent (receiver=0x0, event_type=0, data=0x627420) at kernel/qcoreapplication.h:215
#25 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x627420) at kernel/qcoreapplication.cpp:1373
#26 0x00007f62f3eb68f3 in sendPostedEvents (s=0x65ceb0) at kernel/qcoreapplication.h:220
#27 postEventSourceDispatch (s=0x65ceb0) at kernel/qeventdispatcher_glib.cpp:277
#28 0x00007f62f0d3ca93 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#29 0x00007f62f0d3d270 in ?? () from /usr/lib64/libglib-2.0.so.0
#30 0x00007f62f0d3d510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#31 0x00007f62f3eb6a8f in QEventDispatcherGlib::processEvents (this=0x62d540, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#32 0x00007f62f4b59eae in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#33 0x00007f62f3e8b262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#34 0x00007f62f3e8b475 in QEventLoop::exec (this=0x7fff6e47f830, flags=...) at kernel/qeventloop.cpp:201
#35 0x00007f62f3e8f8db in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#36 0x000000000040a12f in main (argc=1, argv=0x7fff6e47fca8) at /usr/src/debug/kdebase-runtime-4.5.80/knotify/main.cpp:73

Reported using DrKonqi
Comment 1 Dave Plater 2010-11-27 10:10:49 UTC
Created attachment 53786 [details]
New crash information added by DrKonqi

knotify4 (4.0) on KDE Platform 4.5.80 (4.6 Beta1) using Qt 4.7.1

- What I was doing when the application crashed:
Once again it is triggered by the device notifier or related app. After reporting this bug for the first time, I restarted device notifier and it stated it could not find /dev/sr0. This time I ejected a dvd I had just written with k3b and it loaded itself again. After this behaviour repeated a few times I tried command line eject as root only to have the dvd reload again, so I opened device notifier settings and disabled auto mounting, closed settings and the crash occurred.

The device notifier started displaying two dvds after the first eject and unwanted reload. I have replaced the dvd with an audio cd while the drawer was open before it reloaded itself and after the first reload device notifier displayed the dvd title with the lower display indicating an audio cd next to the title and the upper one still indicating a video dvd. After ejecting and allowing the unwanted reload, the upper display is "CD-R" with the audio cd icon and the lower is "Audio CD" with the audio cd icon.

-- Backtrace (Reduced):
#6  Solid::StorageAccess::isAccessible (this=0x0) at /usr/src/debug/kdelibs-4.5.80/solid/solid/storageaccess.cpp:68
#7  0x0000000000419530 in KSolidNotify::isSafelyRemovable (this=<value optimized out>, udi=...) at /usr/src/debug/kdebase-runtime-4.5.80/knotify/ksolidnotify.cpp:106
#8  0x000000000041a188 in KSolidNotify::storageEjectDone (this=0x752440, error=Solid::NoError, errorData=..., udi=...) at /usr/src/debug/kdebase-runtime-4.5.80/knotify/ksolidnotify.cpp:192
#9  0x000000000041a9ad in KSolidNotify::qt_metacall (this=0x752440, _c=<value optimized out>, _id=<value optimized out>, _a=0x7ffffb837e90)
    at /usr/src/debug/kdebase-runtime-4.5.80/build/knotify/ksolidnotify.moc:84
[...]
#11 0x00007f4ec23c62ab in Solid::OpticalDrive::ejectDone (this=<value optimized out>, _t1=Solid::NoError, _t2=<value optimized out>, _t3=<value optimized out>)
    at /usr/src/debug/kdelibs-4.5.80/build/solid/solid/opticaldrive.moc:173
Comment 2 Dave Plater 2010-11-27 10:14:41 UTC
More relevant info I overlooked :
K3b's device information reported the dvd at the time when the device notifier reported the audio cd as the previously loaded dvd.
Comment 3 Kevin Ottens 2010-11-27 10:52:57 UTC
From the backtrace it's very likely a missing check in the caller. So not libsolid's fault.
Comment 4 Dave Plater 2010-11-27 11:01:15 UTC
Created attachment 53787 [details]
New crash information added by DrKonqi

knotify4 (4.0) on KDE Platform 4.5.80 (4.6 Beta1) using Qt 4.7.1

- What I was doing when the application crashed:

I'm trying to make 5 copies of the above mentioned audio cd, after reading the original normally k3b ejects and then asks for a blank cd. This time it ejected and reloaded the master and I had to use the eject button on the notification widget to enable me to load the first blank (this time the drawer stayed out for me to load the blank and device notifier indicates only one cd), this is when this crash happened.
After writing the first cd k3b is now behaving as expected but I'm getting a crash after each copied cd is ejected.
Is there a way to temporarily disable something or do I need to live with it?
I'm not going to send aymore bt's they appear identical and this bug is easy for me to reproduce.
Possibly relevant is :
I have a modern mother board with only one pata ide port and this runs my hard drive and dvd drive. This slows the system when the dvd is in use. Bear this in mind if you have difficulty in reproducing.
Please ask if you need further info.

-- Backtrace (Reduced):
#6  Solid::StorageAccess::isAccessible (this=0x0) at /usr/src/debug/kdelibs-4.5.80/solid/solid/storageaccess.cpp:68
#7  0x0000000000419530 in KSolidNotify::isSafelyRemovable (this=<value optimized out>, udi=...) at /usr/src/debug/kdebase-runtime-4.5.80/knotify/ksolidnotify.cpp:106
#8  0x000000000041a188 in KSolidNotify::storageEjectDone (this=0x765710, error=Solid::NoError, errorData=..., udi=...) at /usr/src/debug/kdebase-runtime-4.5.80/knotify/ksolidnotify.cpp:192
#9  0x000000000041a9ad in KSolidNotify::qt_metacall (this=0x765710, _c=<value optimized out>, _id=<value optimized out>, _a=0x7fff1908a1e0)
    at /usr/src/debug/kdebase-runtime-4.5.80/build/knotify/ksolidnotify.moc:84
[...]
#11 0x00007f0d307022ab in Solid::OpticalDrive::ejectDone (this=<value optimized out>, _t1=Solid::NoError, _t2=<value optimized out>, _t3=<value optimized out>)
    at /usr/src/debug/kdelibs-4.5.80/build/solid/solid/opticaldrive.moc:173
Comment 5 Dave Plater 2010-11-27 11:08:57 UTC
Exact sequence of events after completing copy #4
1. k3b ejects
2. k3b's "Waiting for Disc - K3b" notification widget appears.
3. After a few seconds the notification sound is heard and crash notifier appears.
Comment 6 Dave Plater 2010-11-27 11:14:10 UTC
Previous comment please replace "copy #4" with "copy #3"
ATM device notifier is displaying two cds as reported earlier.
Comment 7 Dave Plater 2010-11-27 11:30:10 UTC
copy #4 failed to eject using k3b's notifier eject button and cd ejects then reloads with no crash. Device notifier now displays on cd device.
Ejecting with k3b again. Cd ejects and reloads, device notifier (in future dn = device notifier) shows 2 cds. Will eject and load new blank before drawer closes.
Copy #4 completes and Comment #5 sequence ending in Crash handler repeats.
At least the drawer stays out. Loading cd for last copy #5.
This last disk went smoothly, ejected and the drawer stayed out.
Comment 8 Christoph Feck 2010-11-27 20:24:27 UTC
*** Bug 258104 has been marked as a duplicate of this bug. ***
Comment 9 Jacopo De Simoi 2010-11-27 23:53:26 UTC
Believe it or not, I found this bug on my own today, I confirm and will fix soon!
Comment 10 Jacopo De Simoi 2010-11-28 00:18:49 UTC
SVN commit 1201500 by jacopods:

Do not crash when ejecting an optical device

BUG: 258010


 M  +7 -1      ksolidnotify.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1201500
Comment 11 Pino Toscano 2010-12-05 12:47:40 UTC
*** Bug 258843 has been marked as a duplicate of this bug. ***
Comment 12 Pino Toscano 2010-12-07 11:04:57 UTC
*** Bug 259078 has been marked as a duplicate of this bug. ***
Comment 13 Dave Plater 2010-12-09 22:50:10 UTC
It looks like the crash might be fixed in 4.5.85, I now get the message box saying it can't find /dev/sr0 and no crash but I still have a problem with the cd tray ejecting and then loading again, also the display of the last ejected disc along with the one I just inserted by holding the drawer open and changing discs.