artsd hanging (deadlock ?)
Martin Koller
m.koller at surfeu.at
Fri Jun 25 19:08:55 BST 2004
Hi list,
I submitted bug http://bugs.kde.org/show_bug.cgi?id=83976 and was told to
contact you guys directly in the mailing list.
So here I am.
Additional info for this bug:
I see that thread 1 is waiting on thread 3
(gdb) frame 4
#4 0x409eb127 in aKode::FrameToStreamDecoder::halt (this=0x80da7e0) at
frametostream_decoder.cpp:114
114 pthread_join(m_data->streamDecoder, 0);
Current language: auto; currently c++
(gdb) list
109 }
110
111 void FrameToStreamDecoder::halt() {
112 m_data->halt = true;
113 m_data->buffer->flush();
114 pthread_join(m_data->streamDecoder, 0);
115 }
116
117 } // namespace
(gdb) p m_data
$1 = (aKode::FrameToStreamDecoder::private_data *) 0x8090aa8
(gdb) p *m_data
$2 = {buffer = 0x8129eb0, inDecoder = 0x80a8900, halt = false, seek_pos = -1,
streamDecoder = 360450}
and thread 3 ...
(gdb) thread 3
[Switching to thread 3 (Thread 360450 (LWP 6327))]#0 0x4076abf1 in
do_sigsuspend () from /lib/libc.so.6
(gdb) bt
#0 0x4076abf1 in do_sigsuspend () from /lib/libc.so.6
#1 0x4076acb9 in sigsuspend () from /lib/libc.so.6
#2 0x40609278 in __pthread_wait_for_restart_signal ()
from /lib/libpthread.so.0
#3 0x40605d18 in pthread_cond_wait at GLIBC_2.0 () from /lib/libpthread.so.0
#4 0x409ea4e8 in aKode::AudioBuffer::put (this=0x8129eb0, buf=0xbf7ffabc,
blocking=true) at audiobuffer.h:67
#5 0x409ead2f in run_thread (arg=0x8090aa8) at frametostream_decoder.cpp:53
#6 0x40606ca3 in pthread_start_thread () from /lib/libpthread.so.0
#7 0x40822c97 in clone () from /lib/libc.so.6
(gdb) frame 4
#4 0x409ea4e8 in aKode::AudioBuffer::put (this=0x8129eb0, buf=0xbf7ffabc,
blocking=true) at audiobuffer.h:67
67 pthread_cond_wait(¬_full, &mutex);
(gdb) p mutex
$3 = {__m_reserved = 0, __m_count = 0, __m_owner = 0x0, __m_kind = 0, __m_lock
= {__status = 0, __spinlock = 0}}
(gdb) list
62 bool put(AudioFrame* buf, bool blocking = true) {
63 pthread_mutex_lock(&mutex);
64 flushed = false;
65 if ((writePos+1) % length == readPos) {
66 if (blocking) {
67 pthread_cond_wait(¬_full, &mutex);
68 if (flushed) goto fail;
69 }
70 else
71 goto fail;
(gdb) p not_full
$4 = {__c_lock = {__status = 0, __spinlock = 0}, __c_waiting = 0xbf7ffbe0,
__padding = '\0' <repeats 27 times>, __align = 0}
anything else I can help with ?
--
Best regards/Schöne Grüße
Martin () ascii ribbon campaign - against html mail
/\ - against microsoft attachments
Some operating systems are called 'user friendly',
Linux however is 'expert friendly'.
More information about the kde-multimedia
mailing list