Summary: | amarok ties up keyboard when a global shortcut is sent to it (while crashing) | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | richlv |
Component: | general | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED NOT A BUG | ||
Severity: | normal | CC: | adam, bkemper, divan, ibc, kretschmann, sven.burmeister |
Priority: | NOR | ||
Version: | 2.0-SVN | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
richlv
2006-08-25 20:38:23 UTC
*** Bug 133755 has been marked as a duplicate of this bug. *** Yeah very annoying. FYI, bug 132595 also has an app freezing the keyboard (though not amarok). Perhaps it's related. *** Bug 119619 has been marked as a duplicate of this bug. *** *** Bug 134769 has been marked as a duplicate of this bug. *** I can't imagine that this has anything to do with Amarok. Seems it could be a KDE thing. What to do with this report, reassign to kdelibs? Have you tried to reproduce it and get a backtrace? That would convert the imagination to facts. ;) the problem is, it's relatively easy to get backtraces for amarok and fix the problem. the keyboard lockup issue seems to be pretty hard to debug, unless somebody has specific tests to perform. there have been reports of locked up keyboard when using other window managers/desktop environments, but i suppose amarok still uses kdelibs in that case. I'm glad to see that this is a known bug. I have to ssh in and kill amarokapp when this happens...or if I can't do that, it's a hard-reset, after SysRq'ing a sync. It just happened to me when I pressed F12 to bring up Yakuake, after Amarok froze while trying to sync a dynamic playlist to a "media device" folder on my hard disk. *sigh* Adam, when you ssh in, can you try "kill -SEGV <pid-of-amarok>"? That might get you a crash dialog with a backtrace, which could be useful. in response to comment 10 : wouldn't this only give backtrace for amarok crash (which mostly can be obtained), but no insight in keyboard locking problem ? if that could help, i could try crashing amarok & locking up keyboard, just to try this ;) Same problem here, although I'm having trouble reproducing it... Seems fairly random. (slamd64, kde 3.5.4 [libraries only, I use fluxbox], kernel 2.6.18.1) I've been using ssh to kill the process as well. Next time I'll go ahead and try for a backtrace, unless someone beats me to it. it seems i got hit by this problem again, but it was somewhat different this time and maybe provides some insight. i had music on a remote nfs share, and the server was getting a very high load. this made amarok unresponsive. i pressed "win+c", and this blocked whole keyboard. i thought amarok has crashed, but after some time it responded, and the keyboard was unlocked, too. so it seems keyboard is locked until target app recieves the command or something. *** This bug has been confirmed by popular vote. *** Okay. Got a backtrace... Hope this helps. ======== DEBUG INFORMATION ======= Version: 1.4-SVN Engine: xine-engine Build date: Oct 28 2006 CC version: 3.4.6 KDElibs: 3.5.4 Qt: 3.3.5 TagLib: 1.4.0 CPU count: 2 ==== file `which amarokapp` ======= /opt/kde/bin/amarokapp: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), dynamically linked (uses shared libs), not stripped ==== (gdb) bt ===================== Using host libthread_db library "/lib64/tls/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread 47135158614080 (LWP 5047)] [New Thread 1132489056 (LWP 5073)] [New Thread 1124096352 (LWP 5072)] [New Thread 1115703648 (LWP 5071)] [New Thread 1107310944 (LWP 5070)] [New Thread 1098918240 (LWP 5067)] 0x00002ade8176a04a in waitpid () from /lib64/tls/libpthread.so.0 #0 0x00002ade8176a04a in waitpid () from /lib64/tls/libpthread.so.0 #1 0x0000000000406869 in Amarok::Crash::crashHandler () at crashhandler.cpp:249 #2 <signal handler called> #3 0x00002ade81766a7a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/tls/libpthread.so.0 #4 0x00002aaaab20f867 in ticket_revoke () from /usr/local/lib/libxine.so.1 #5 0x00002aaaab20fb36 in stream_rewire_audio () from /usr/local/lib/libxine.so.1 #6 0x00002aaaaab05b2f in XineEngine::load (this=0xa17d90, url=@0x1, isStream=8) at xine-engine.cpp:251 #7 0x00002ade7ca3638a in EngineController::play (this=0x2ade7ce17820, bundle=@0xedd4d0, offset=0) at enginecontroller.cpp:422 #8 0x00002ade7caab152 in Playlist::activate (this=0x6fa160, item=0xedd600) at playlist.cpp:1901 #9 0x00002ade7caad6ad in Playlist::playNextTrack (this=0x6fa160, forceNext=true) at playlist.cpp:1394 #10 0x00002ade7cab46ec in Playlist::qt_invoke (this=0x6fa160, _id=116, _o=0x7fff2e479990) at playlist.moc:485 #11 0x00002ade7f8dde38 in QObject::activate_signal () from /usr/lib64/qt/lib/libqt-mt.so.3 #12 0x00002ade7f8ddf61 in QObject::activate_signal_bool () from /usr/lib64/qt/lib/libqt-mt.so.3 #13 0x00002ade7ca384b4 in EngineController::qt_invoke (this=0x2ade7ce17820, _id=3, _o=0x7fff2e479a20) at enginecontroller.moc:232 #14 0x00002ade7ec5d3fa in KGlobalAccelPrivate::activate () from /opt/kde/lib64/libkdecore.so.4 #15 0x00002ade7ec5ef96 in KGlobalAccelPrivate::x11KeyPress () from /opt/kde/lib64/libkdecore.so.4 #16 0x00002ade7ec5f0d5 in KGlobalAccelPrivate::x11Event () from /opt/kde/lib64/libkdecore.so.4 #17 0x00002ade7ebc4a8e in KApplication::x11EventFilter () from /opt/kde/lib64/libkdecore.so.4 #18 0x00002ade7f81d7b1 in qt_set_x11_event_filter () from /usr/lib64/qt/lib/libqt-mt.so.3 #19 0x00002ade7f8296d8 in QApplication::x11ProcessEvent () from /usr/lib64/qt/lib/libqt-mt.so.3 #20 0x00002ade7f83a9fb in QEventLoop::processEvents () from /usr/lib64/qt/lib/libqt-mt.so.3 #21 0x00002ade7f898f45 in QEventLoop::enterLoop () from /usr/lib64/qt/lib/libqt-mt.so.3 #22 0x00002ade7f898ea2 in QEventLoop::exec () from /usr/lib64/qt/lib/libqt-mt.so.3 #23 0x0000000000405d98 in main (argc=1, argv=0x7fff2e47a728) at main.cpp:109 #0 0x00002ade8176a04a in waitpid () from /lib64/tls/libpthread.so.0 No symbol table info available. #1 0x0000000000406869 in Amarok::Crash::crashHandler () at crashhandler.cpp:249 pid = 10216 #2 <signal handler called> No symbol table info available. #3 0x00002ade81766a7a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/tls/libpthread.so.0 No symbol table info available. #4 0x00002aaaab20f867 in ticket_revoke () from /usr/local/lib/libxine.so.1 No symbol table info available. #5 0x00002aaaab20fb36 in stream_rewire_audio () from /usr/local/lib/libxine.so.1 No symbol table info available. #6 0x00002aaaaab05b2f in XineEngine::load (this=0xa17d90, url=@0x1, isStream=8) at xine-engine.cpp:251 source = (xine_post_out_t *) 0x2aaaadc71708 target = (xine_post_in_t *) 0x0 __PRETTY_FUNCTION__ = "virtual bool XineEngine::load(const KURL&, bool)" #7 0x00002ade7ca3638a in EngineController::play (this=0x2ade7ce17820, bundle=@0xedd4d0, offset=0) at enginecontroller.cpp:422 uniquelyNamedStackAllocatedStandardBlock = {m_start = {tv_sec = 1163354027, tv_usec = 28834}, m_label = 0x2ade7cc149a0 "void EngineController::play(const MetaBundle&, uint)"} url = {m_strProtocol = {static null = {static null = <same as static member of an already seen type>, d = 0x527ea0, static shared_null = 0x527ea0}, d = 0x2aaab126c270, static shared_null = 0x527ea0}, m_strUser = {static null = { static null = <same as static member of an already seen type>, d = 0x527ea0, static shared_null = 0x527ea0}, d = 0x527ea0, static shared_null = 0x527ea0}, m_strPass = {static null = { static null = <same as static member of an already seen type>, d = 0x527ea0, static shared_null = 0x527ea0}, d = 0x527ea0, static shared_null = 0x527ea0}, m_strHost = {static null = { static null = <same as static member of an already seen type>, d = 0x527ea0, static shared_null = 0x527ea0}, d = 0x527ea0, static shared_null = 0x527ea0}, m_strPath = {static null = { static null = <same as static member of an already seen type>, d = 0x527ea0, static shared_null = 0x527ea0}, d = 0x2aaab126dd30, static shared_null = 0x527ea0}, m_strRef_encoded = {static null = { static null = <same as static member of an already seen type>, d = 0x527ea0, static shared_null = 0x527ea0}, d = 0x527ea0, static shared_null = 0x527ea0}, m_strQuery_encoded = {static null = { static null = <same as static member of an already seen type>, d = 0x527ea0, static shared_null = 0x527ea0}, d = 0x527ea0, static shared_null = 0x527ea0}, m_bIsMalformed = false, m_iUriMode = URL, freeForUse = 3, m_iPort = 0, m_strPath_encoded = {static null = {static null = <same as static member of an already seen type>, d = 0x527ea0, static shared_null = 0x527ea0}, d = 0x527ea0, static shared_null = 0x527ea0}, d = 0x0} failure_time = {ds = 39227028} currentTrack = 0 totalTracks = 776443104 __PRETTY_FUNCTION__ = "void EngineController::play(const MetaBundle&, uint)" #8 0x00002ade7caab152 in Playlist::activate (this=0x6fa160, item=0xedd600) at playlist.cpp:1901 No locals. #9 0x00002ade7caad6ad in Playlist::playNextTrack (this=0x6fa160, forceNext=true) at playlist.cpp:1394 item = (class PlaylistItem *) 0xedd4d0 #10 0x00002ade7cab46ec in Playlist::qt_invoke (this=0x6fa160, _id=116, _o=0x7fff2e479990) at playlist.moc:485 No locals. #11 0x00002ade7f8dde38 in QObject::activate_signal () from /usr/lib64/qt/lib/libqt-mt.so.3 No symbol table info available. #12 0x00002ade7f8ddf61 in QObject::activate_signal_bool () from /usr/lib64/qt/lib/libqt-mt.so.3 No symbol table info available. #13 0x00002ade7ca384b4 in EngineController::qt_invoke (this=0x2ade7ce17820, _id=3, _o=0x7fff2e479a20) at enginecontroller.moc:232 No locals. #14 0x00002ade7ec5d3fa in KGlobalAccelPrivate::activate () from /opt/kde/lib64/libkdecore.so.4 No symbol table info available. #15 0x00002ade7ec5ef96 in KGlobalAccelPrivate::x11KeyPress () from /opt/kde/lib64/libkdecore.so.4 No symbol table info available. #16 0x00002ade7ec5f0d5 in KGlobalAccelPrivate::x11Event () from /opt/kde/lib64/libkdecore.so.4 No symbol table info available. #17 0x00002ade7ebc4a8e in KApplication::x11EventFilter () from /opt/kde/lib64/libkdecore.so.4 No symbol table info available. #18 0x00002ade7f81d7b1 in qt_set_x11_event_filter () from /usr/lib64/qt/lib/libqt-mt.so.3 No symbol table info available. #19 0x00002ade7f8296d8 in QApplication::x11ProcessEvent () from /usr/lib64/qt/lib/libqt-mt.so.3 No symbol table info available. #20 0x00002ade7f83a9fb in QEventLoop::processEvents () from /usr/lib64/qt/lib/libqt-mt.so.3 No symbol table info available. #21 0x00002ade7f898f45 in QEventLoop::enterLoop () from /usr/lib64/qt/lib/libqt-mt.so.3 No symbol table info available. #22 0x00002ade7f898ea2 in QEventLoop::exec () from /usr/lib64/qt/lib/libqt-mt.so.3 No symbol table info available. #23 0x0000000000405d98 in main (argc=1, argv=0x7fff2e47a728) at main.cpp:109 app = {<> = {<No data fields>}, <EngineObserver> = {_vptr.EngineObserver = 0x2ade7cddfd50, m_subject = 0x0}, static metaObj = 0x616940, static mainThreadId = 0, m_pGlobalAccel = 0x63bbd0, m_pPlayerWindow = 0x0, m_pPlaylistWindow = 0x64cc30, m_pTray = 0x6793a0, m_pMediaDeviceManager = 0x2ade7ce17d00} ==== (gdb) thread apply all bt ==== Thread 6 (Thread 1098918240 (LWP 5067)): #0 0x00002ade81766c6f in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/tls/libpthread.so.0 #1 0x00002aaaab214636 in metronom_sync_loop () from /usr/local/lib/libxine.so.1 #2 0x00002ade817640da in start_thread () from /lib64/tls/libpthread.so.0 #3 0x00002ade82124822 in clone () from /lib64/tls/libc.so.6 #4 0x0000000000000000 in ?? () Thread 5 (Thread 1107310944 (LWP 5070)): #0 0x00002ade8211bc42 in poll () from /lib64/tls/libc.so.6 #1 0x00002aaaada6926d in ao_alsa_handle_event_thread () from /usr/local/lib/xine/plugins/1.1.2/xineplug_ao_out_alsa.so #2 0x00002ade817640da in start_thread () from /lib64/tls/libpthread.so.0 #3 0x00002ade82124822 in clone () from /lib64/tls/libc.so.6 #4 0x0000000000000000 in ?? () Thread 4 (Thread 1115703648 (LWP 5071)): #0 0x00002ade81766a7a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/tls/libpthread.so.0 #1 0x00002aaaab223f56 in ao_loop () from /usr/local/lib/libxine.so.1 #2 0x00002ade817640da in start_thread () from /lib64/tls/libpthread.so.0 #3 0x00002ade82124822 in clone () from /lib64/tls/libc.so.6 #4 0x0000000000000000 in ?? () Thread 3 (Thread 1124096352 (LWP 5072)): #0 0x00002ade81766a7a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/tls/libpthread.so.0 #1 0x00002aaaab2177b0 in fifo_buffer_get () from /usr/local/lib/libxine.so.1 #2 0x00002aaaab21e455 in audio_decoder_loop () from /usr/local/lib/libxine.so.1 #3 0x00002ade817640da in start_thread () from /lib64/tls/libpthread.so.0 #4 0x00002ade82124822 in clone () from /lib64/tls/libc.so.6 #5 0x0000000000000000 in ?? () Thread 2 (Thread 1132489056 (LWP 5073)): #0 0x00002ade81766a7a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/tls/libpthread.so.0 #1 0x00002aaaab226c3d in xine_event_wait () from /usr/local/lib/libxine.so.1 #2 0x00002aaaab227035 in listener_loop () from /usr/local/lib/libxine.so.1 #3 0x00002ade817640da in start_thread () from /lib64/tls/libpthread.so.0 #4 0x00002ade82124822 in clone () from /lib64/tls/libc.so.6 #5 0x0000000000000000 in ?? () Thread 1 (Thread 47135158614080 (LWP 5047)): #0 0x00002ade8176a04a in waitpid () from /lib64/tls/libpthread.so.0 #1 0x0000000000406869 in Amarok::Crash::crashHandler () at crashhandler.cpp:249 #2 <signal handler called> #3 0x00002ade81766a7a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/tls/libpthread.so.0 #4 0x00002aaaab20f867 in ticket_revoke () from /usr/local/lib/libxine.so.1 #5 0x00002aaaab20fb36 in stream_rewire_audio () from /usr/local/lib/libxine.so.1 #6 0x00002aaaaab05b2f in XineEngine::load (this=0xa17d90, url=@0x1, isStream=8) at xine-engine.cpp:251 #7 0x00002ade7ca3638a in EngineController::play (this=0x2ade7ce17820, bundle=@0xedd4d0, offset=0) at enginecontroller.cpp:422 #8 0x00002ade7caab152 in Playlist::activate (this=0x6fa160, item=0xedd600) at playlist.cpp:1901 #9 0x00002ade7caad6ad in Playlist::playNextTrack (this=0x6fa160, forceNext=true) at playlist.cpp:1394 #10 0x00002ade7cab46ec in Playlist::qt_invoke (this=0x6fa160, _id=116, _o=0x7fff2e479990) at playlist.moc:485 #11 0x00002ade7f8dde38 in QObject::activate_signal () from /usr/lib64/qt/lib/libqt-mt.so.3 #12 0x00002ade7f8ddf61 in QObject::activate_signal_bool () from /usr/lib64/qt/lib/libqt-mt.so.3 #13 0x00002ade7ca384b4 in EngineController::qt_invoke (this=0x2ade7ce17820, _id=3, _o=0x7fff2e479a20) at enginecontroller.moc:232 #14 0x00002ade7ec5d3fa in KGlobalAccelPrivate::activate () from /opt/kde/lib64/libkdecore.so.4 #15 0x00002ade7ec5ef96 in KGlobalAccelPrivate::x11KeyPress () from /opt/kde/lib64/libkdecore.so.4 #16 0x00002ade7ec5f0d5 in KGlobalAccelPrivate::x11Event () from /opt/kde/lib64/libkdecore.so.4 #17 0x00002ade7ebc4a8e in KApplication::x11EventFilter () from /opt/kde/lib64/libkdecore.so.4 #18 0x00002ade7f81d7b1 in qt_set_x11_event_filter () from /usr/lib64/qt/lib/libqt-mt.so.3 #19 0x00002ade7f8296d8 in QApplication::x11ProcessEvent () from /usr/lib64/qt/lib/libqt-mt.so.3 #20 0x00002ade7f83a9fb in QEventLoop::processEvents () from /usr/lib64/qt/lib/libqt-mt.so.3 #21 0x00002ade7f898f45 in QEventLoop::enterLoop () from /usr/lib64/qt/lib/libqt-mt.so.3 #22 0x00002ade7f898ea2 in QEventLoop::exec () from /usr/lib64/qt/lib/libqt-mt.so.3 #23 0x0000000000405d98 in main (argc=1, argv=0x7fff2e47a728) at main.cpp:109 #0 0x00002ade8176a04a in waitpid () from /lib64/tls/libpthread.so.0 ==== kdBacktrace() ================ [ 0: /opt/kde/lib64/libkdecore.so.4(_Z11kdBacktracei+0x40) [0x2ade7ebcfc70] 1: /opt/kde/lib64/libkdecore.so.4(_Z11kdBacktracev+0xe) [0x2ade7ebcff1e] 2: amarokapp(_ZN6Amarok5Crash12crashHandlerEi+0x66d) [0x40650d] 3: /lib64/tls/libc.so.6 [0x2ade8208c0b0] 4: /lib64/tls/libpthread.so.0(pthread_cond_wait+0xaa) [0x2ade81766a7a] 5: /usr/local/lib/libxine.so.1 [0x2aaaab20f867] 6: /usr/local/lib/libxine.so.1 [0x2aaaab20fb36] 7: /opt/kde/lib64/kde3/libamarok_xine-engine.so(_ZN10XineEngine4loadERK4KURLb+0x16f) [0x2aaaaab05b2f] 8: /opt/kde/lib64/libamarok.so.0(_ZN16EngineController4playERK10MetaBundlej+0x21a) [0x2ade7ca3638a] 9: /opt/kde/lib64/libamarok.so.0(_ZN8Playlist8activateEP13QListViewItem+0x252) [0x2ade7caab152] 10: /opt/kde/lib64/libamarok.so.0(_ZN8Playlist13playNextTrackEb+0x14d) [0x2ade7caad6ad] 11: /opt/kde/lib64/libamarok.so.0(_ZN8Playlist9qt_invokeEiP8QUObject+0x9dc) [0x2ade7cab46ec] 12: /usr/lib64/qt/lib/libqt-mt.so.3(_ZN7QObject15activate_signalEP15QConnectionListP8QUObject+0x128) [0x2ade7f8dde38] 13: /usr/lib64/qt/lib/libqt-mt.so.3(_ZN7QObject20activate_signal_boolEib+0xb1) [0x2ade7f8ddf61] 14: /opt/kde/lib64/libamarok.so.0(_ZN16EngineController9qt_invokeEiP8QUObject+0x314) [0x2ade7ca384b4] 15: /opt/kde/lib64/libkdecore.so.4(_ZN19KGlobalAccelPrivate8activateEP12KAccelActionRK12KKeySequence+0x4aa) [0x2ade7ec5d3fa] 16: /opt/kde/lib64/libkdecore.so.4(_ZN19KGlobalAccelPrivate11x11KeyPressEPK7_XEvent+0xc46) [0x2ade7ec5ef96] 17: /opt/kde/lib64/libkdecore.so.4(_ZN19KGlobalAccelPrivate8x11EventEP7_XEvent+0x45) [0x2ade7ec5f0d5] 18: /opt/kde/lib64/libkdecore.so.4(_ZN12KApplication14x11EventFilterEP7_XEvent+0x12e) [0x2ade7ebc4a8e] 19: /usr/lib64/qt/lib/libqt-mt.so.3 [0x2ade7f81d7b1] 20: /usr/lib64/qt/lib/libqt-mt.so.3(_ZN12QApplication15x11ProcessEventEP7_XEvent+0x278) [0x2ade7f8296d8] 21: /usr/lib64/qt/lib/libqt-mt.so.3(_ZN10QEventLoop13processEventsEj+0xfb) [0x2ade7f83a9fb] 22: /usr/lib64/qt/lib/libqt-mt.so.3(_ZN10QEventLoop9enterLoopEv+0x45) [0x2ade7f898f45] 23: /usr/lib64/qt/lib/libqt-mt.so.3(_ZN10QEventLoop4execEv+0x22) [0x2ade7f898ea2] 24: amarokapp [0x405d98] 25: /lib64/tls/libc.so.6(__libc_start_main+0xdb) [0x2ade820794bb] 26: amarokapp(_ZN6QGList5clearEv+0xd2) [0x40575a] ] There's an analysis of this sort of problem in bug 137288, FWIW *** Bug 126699 has been marked as a duplicate of this bug. *** a very easy way to reproduce the problem : play some tracks from an nfs server, make it unavailable. wait for amarok to stop playback, press global shortcut combination. unless you press it fast enough (so that amarok manages to pause), keyboard is locked. partially this reproduction path would be reduced when/if xine gets better at dealing with unavailable sources, but keyboard locking whenever target app is unable to receive shortcut key would still stay there. *** This bug has been marked as a duplicate of 137288 *** Please unmark this as a dupe. As #137288 says, each application should be able to fix this for themselves, even if there is a more global cause or possible fix. The 1.4 series is in feature freeze so this wont be fixed anymore. Please submit a patch if you want this to be fixed. I want this to be fixed in 2.0 which is certainly not in a feature freeze. And btw. this is a bug not a feature-request, so feature freeze does not apply anyway. Reopening. Is this really still happening in Amarok 2? This actually has nothing to do with Amarok, but rather with KDE/X. It's already been reported in KDE, so we can close this. It's also possible that this is no longer an issue in KDE 4.1 anyway. This still happens in KDE4.1.0. If this bug is because of KDE/X then where is this bug elsewhere reported so we can follow it as it happens extremely often with amarok and is rather severe(for some). |