[Bug 392706] New: gstreamer lock-up ...
https://bugzilla.novell.com/show_bug.cgi?id=392706 Summary: gstreamer lock-up ... Product: openSUSE 11.0 Version: Factory Platform: Other OS/Version: Other Status: NEW Severity: Major Priority: P5 - None Component: GNOME AssignedTo: bnc-team-gnome@forge.provo.novell.com ReportedBy: mmeeks@novell.com QAContact: qa@suse.de Found By: --- I have pidgin configured to use 'esd' for sound output - no idea why, but that's how it is ;-) Similarly I'm not actually running esd, or anything like it AFAIK - or perhaps I'm running pulsefoo (or somesuch). Anyhow - when pidgin tries to 'ping' on a message (easiest way to test: Tools->Options->Sounds 'Test') - it hangs: #0 0x00007fae6e37f88b in write () from /lib64/libpthread.so.0 #1 0x00007fae5a429dbe in gst_esdsink_write (asink=<value optimized out>, data=0x7fae74b9b090, length=4096) at esdsink.c:401 #2 0x00007fae5a215138 in audioringbuffer_thread_func (buf=0x7fae74b5c5e0) at gstaudiosink.c:226 #3 0x00007fae6d652794 in ?? () from /usr/lib64/libglib-2.0.so.0 #4 0x00007fae6e379040 in start_thread (arg=<value optimized out>) at pthread_create.c:297 #5 0x00007fae6cabe0cd in clone () from /lib64/libc.so.6 endless SIGPIPEs from here: (gdb) up #1 0x00007fae5a429dbe in gst_esdsink_write (asink=<value optimized out>, data=0x7fae74b9b090, length=4096) at esdsink.c:401 401 done = write (esdsink->fd, data, to_write); Current language: auto; currently c (gdb) l 396 to_write = length; 397 398 while (to_write > 0) { 399 int done; 400 401 done = write (esdsink->fd, data, to_write); 402 403 if (done < 0) 404 goto write_error; .. 412 write_error: 413 { 414 GST_ELEMENT_ERROR (esdsink, RESOURCE, WRITE, 415 ("Failed to write data to the esound daemon"), GST_ERROR_SYSTEM); 416 return 0; 417 } 418 } ie. '0' seems to be used to flag an error in this case, yet in the calling code: #2 0x00007fae5a215138 in audioringbuffer_thread_func (buf=0x7fae74b5c5e0) at gstaudiosink.c:226 221 if (gst_ring_buffer_prepare_read (buf, &readseg, &readptr, &len)) { 222 gint written = 0; 223 224 left = len; 225 do { 226 written = writefunc (sink, readptr + written, left); 227 GST_LOG_OBJECT (sink, "transfered %d bytes of %d from segment %d", 228 written, left, readseg); 229 if (written < 0 || written > left) { 230 GST_WARNING_OBJECT (sink, 231 "error writing data (reason: %s), skipping segment", 232 g_strerror (errno)); 233 break; 234 } 235 left -= written; 236 } while (left > 0); 237 238 /* clear written samples */ 239 gst_ring_buffer_clear (buf, readseg); it seems that 0 is not considered an error: though perhaps it should be (this is presumably a blocking loop ;-). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=392706
User mmeeks@novell.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=392706#c1
--- Comment #1 from Michael Meeks
https://bugzilla.novell.com/show_bug.cgi?id=392706
User jpr@novell.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=392706#c2
JP Rosevear
https://bugzilla.novell.com/show_bug.cgi?id=392706
User maw@novell.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=392706#c3
Michael Wolf
participants (1)
-
bugzilla_noreply@novell.com