Re: [Ekiga-devel-list] 100% cpu?



Le lundi 30 juin 2008 à 11:07 -0400, Ryan Hughes a écrit :
> I have a little bit more data.
> 
> It seems to only do this thing, of hitting 100% cpu usage, after I get 
> this message on the console:
> 
> *** PULSEAUDIO: Unable to create stream.
> Cannot set parameters Input/output error
> 
> It turns out that the new ubuntu that I've upgraded to has PulseAudio as 
> its default sound server.  Ekiga doesn't support pulseaudio natively.
> 
> Also:  I ran ekiga through gdb and interrupted when it was hitting 100% 
> cpu, so that I could look at a backtrace.  I got a couple of different 
> answers, such as:
> 
> This one, I got when ekiga was so far gone that I could not choose "quit" 
> from the "call" menu.
> 
> #0  0x00002b366a37bc76 in poll () from /lib/libc.so.6
> #1  0x00002b36680d2366 in ?? () from /usr/lib/libglib-2.0.so.0
> #2  0x00002b36680d27d7 in g_main_loop_run () from 
> /usr/lib/libglib-2.0.so.0
> #3  0x00002b3664ae1f03 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
> #4  0x000000000044259e in main (argc=1, argv=0x7fff47746728,
>       envp=<value optimized out>) at gui/main.cpp:4713
> 
> Somebody is doing some polling, but I can't seem to get more information 
> than that.
> 
> My theory is that this is not a bug in ekiga, but is instead a bug in the 
> way that non-native pulseaudio programs interact with pulseaudio in the 
> latest ubuntu.
> 
> The bug could be worked around in ekiga by making it support pulseaudio 
> natively, but could only be fixed in those other packages.
> 
> That's my theory.
> 
> 
> Here's a backtrace I got another time.  This one, I got after I chose 
> "quit" from the "call" menu, which I did after it started hitting 100% 
> cpu.  The window disappeared, but the little phone icon remained in the 
> notification area.
> 
> #0  0x00002b5eeef02b99 in pthread_cond_wait@@GLIBC_2.3.2 ()
>      from /lib/libpthread.so.0
> #1  0x00002b5eede9faab in PSyncPoint::Wait () from 
> /usr/lib/libpt.so.1.10.10
> #2  0x00002b5eee58f839 in OpalManager::ClearAllCalls ()
>      from /usr/lib/libopal.so.2.2
> #3  0x000000000045a177 in GMManager::Exit (this=0x7600a4)
>       at endpoints/manager.cpp:154
> #4  0x0000000000456775 in GnomeMeeting::RemoveManager (this=0x6cd720)
>       at endpoints/ekiga.cpp:561
> #5  0x0000000000456a8c in GnomeMeeting::Exit (this=0x7600a4)
>       at endpoints/ekiga.cpp:164
> #6  0x00000000004425b0 in main (argc=1, argv=0x7fffc2142128,
>       envp=<value optimized out>) at gui/main.cpp:4716
> 
> Deadlock?  A live one?
> 
> 
> Here's another backtrace.  This one I got when I couldn't hit "call > 
> quit".
> 
> #0  0x00002b5f311d4991 in sem_wait () from /lib/libpthread.so.0
> #1  0x00002b5f3017055f in PSemaphore::Wait () from 
> /usr/lib/libpt.so.1.10.10
> #2  0x00002b5f3018eb14 in PSafeObject::LockReadWrite ()
>      from /usr/lib/libpt.so.1.10.10
> #3  0x00002b5f3018efc5 in PSafePtrBase::EnterSafetyMode ()
>      from /usr/lib/libpt.so.1.10.10
> #4  0x00002b5f3018f7d8 in PSafePtrBase::PSafePtrBase ()
>      from /usr/lib/libpt.so.1.10.10
> #5  0x00002b5f3085f7da in OpalManager::ClearAllCalls ()
>      from /usr/lib/libopal.so.2.2
> #6  0x0000000000456c31 in GnomeMeeting::Disconnect (this=0x6cd720,
>       reason=OpalConnection::EndedByLocalUser) at endpoints/ekiga.cpp:138
> #7  0x00000000004363c3 in connect_button_clicked_cb (widget=0xc56810,
>       data=<value optimized out>) at gui/callbacks.cpp:418
> #8  0x00002b5f2f111bcf in g_closure_invoke () from 
> /usr/lib/libgobject-2.0.so.0
> #9  0x00002b5f2f1256bc in ?? () from /usr/lib/libgobject-2.0.so.0
> #10 0x00002b5f2f1270d5 in g_signal_emit_valist ()
>      from /usr/lib/libgobject-2.0.so.0
> #11 0x00002b5f2f127483 in g_signal_emit () from 
> /usr/lib/libgobject-2.0.so.0
> #12 0x00002b5f2c2f3b99 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
> #13 0x00002b5f2c3b987f in ?? () from /usr/lib/libgtk-x11-2.0.so.0
> #14 0x00002b5f2f111bcf in g_closure_invoke () from 
> /usr/lib/libgobject-2.0.so.0
> #15 0x00002b5f2f125aa8 in ?? () from /usr/lib/libgobject-2.0.so.0
> ---Type <return> to continue, or q <return> to quit---
> #16 0x00002b5f2f126de6 in g_signal_emit_valist ()
>      from /usr/lib/libgobject-2.0.so.0
> #17 0x00002b5f2f127483 in g_signal_emit () from 
> /usr/lib/libgobject-2.0.so.0
> #18 0x00002b5f2c4c0e55 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
> #19 0x00002b5f2c3b2b92 in gtk_propagate_event ()
>      from /usr/lib/libgtk-x11-2.0.so.0
> #20 0x00002b5f2c3b3b35 in gtk_main_do_event ()
>      from /usr/lib/libgtk-x11-2.0.so.0
> #21 0x00002b5f2c88758c in ?? () from /usr/lib/libgdk-x11-2.0.so.0
> #22 0x00002b5f2f9a1262 in g_main_context_dispatch ()
>      from /usr/lib/libglib-2.0.so.0
> #23 0x00002b5f2f9a4516 in ?? () from /usr/lib/libglib-2.0.so.0
> #24 0x00002b5f2f9a47d7 in g_main_loop_run () from 
> /usr/lib/libglib-2.0.so.0
> #25 0x00002b5f2c3b3f03 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
> #26 0x000000000044259e in main (argc=1, argv=0x7fff7fe74e58,
>       envp=<value optimized out>) at gui/main.cpp:4713
> 
> 
> Finally, it seems that I did successfully compile it with gprof output, 
> but the gmon.out file is only created if the program quits normally (or 
> abnormally), and not if I have to kill it.  In the past, I have been able 
> to quit the program normally, even after it hits 100% cpu, but lately I've 
> had to kill it, so the gmon.out is never created.
> 

What happens if you remove pulseaudio ?
Does it work ?

Pulseaudio has a serie of bugs... And Ubuntu likes bugs, moreover, they
do not test what they ship on their CD, so that explains that kind of
situation.

Believe me, don't use ubuntu if you want stability.
-- 
 _     Damien Sandras
(o-      
//\    Ekiga Softphone : http://www.ekiga.org/
v_/_   NOVACOM         : http://www.novacom.be/
       FOSDEM          : http://www.fosdem.org/
       SIP Phone       : sip:dsandras ekiga net
                       



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]