High CPU usage by yelp

Bug #199860 reported by darx
4
Affects Status Importance Assigned to Milestone
yelp (Ubuntu)
Invalid
Medium
Ubuntu Desktop Bugs
Nominated for Natty by TienFu Chen

Bug Description

Binary package hint: yelp

Yelp maxes out the CPU. If yelp is started minimized, it idles as expected but if brought forward, the CPU usage goes very high and stays the same unless closed.

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu hardy (development branch)"

yelp:
  Installed: 2.21.90-0ubuntu2
  Candidate: 2.21.90-0ubuntu2
  Version table:
 *** 2.21.90-0ubuntu2 0
        500 http://gb.archive.ubuntu.com hardy/main Packages
        100 /var/lib/dpkg/status

Tags: cpu yelp
Revision history for this message
Sergey Moskovkin (lvlo) wrote :

agree

Revision history for this message
Sebastien Bacher (seb128) wrote :

Thank you for your bug report. The description has not enough informations to be useful though. Could you describe steps to trigger the bug? Could you get a backtrace while it's eating cpu or use sysprof or an equivalent software to determine the issue?

Changed in yelp:
assignee: nobody → desktop-bugs
importance: Undecided → Medium
status: New → Incomplete
Revision history for this message
darx (rabidphage) wrote :

To reproduce the bug:

1, Start yelp from anywhere, system > help and support or via the command line
2, If yelp doesn't have focus, bring it forward
3, CPU usage shoots up and stays the same unless yelp is closed. Minimizing it or making it loose focus doesn't help.

I can't backtrace following this https://wiki.ubuntu.com/Backtrace yelp doesn't crash. It only spins the CPU to 100%.

I'm attaching the sysprof output. (don't know if I've done it correctly though. I started sysprof as root, hit play, ran yelp, let yelp run for a minute or so, closed yelp, hit the profile button and saved the output)

Revision history for this message
Matjam (chrome) wrote :

Seeing the same thing. Attached a debugger, without debug symbols this is the best I can give you:

(gdb) where
#0 0x00007fcf35feefe6 in pthread_cond_signal@@GLIBC_2.3.2 ()
   from /lib/libpthread.so.0
#1 0x00007fcf2d553968 in ?? () from /usr/lib/libnspr4.so.0d
#2 0x00007fcf2d553c3d in PR_Unlock () from /usr/lib/libnspr4.so.0d
#3 0x00007fcf2ccbdd2d in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#4 0x00007fcf2cc3d20e in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#5 0x00007fcf2cc3deac in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#6 0x00007fcf2ccbd4a5 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#7 0x00007fcf2ccbda05 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#8 0x00007fcf2ccbb94d in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#9 0x00007fcf2cc901f4 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#10 0x00007fcf2cc09057 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#11 0x00007fcf2cbf6dfe in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#12 0x00007fcf372a33b4 in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#13 0x00007fcf372a66c5 in ?? () from /usr/lib/libglib-2.0.so.0
#14 0x00007fcf372a69e5 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#15 0x00007fcf38b89d63 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#16 0x000000000041c120 in ?? ()
#17 0x00007fcf35ca01c4 in __libc_start_main () from /lib/libc.so.6
#18 0x000000000040dcb9 in ?? ()
#19 0x00007fff41d6b778 in ?? ()
#20 0x0000000000000000 in ?? ()

Attached a screenshot of the CPU usage. 50% because its a dual CPU box.

Seems to be spinning between the above and this:

(gdb) where
#0 0x00007fcf35feefe6 in pthread_cond_signal@@GLIBC_2.3.2 ()
   from /lib/libpthread.so.0
#1 0x00007fcf2d553968 in ?? () from /usr/lib/libnspr4.so.0d
#2 0x00007fcf2d553c3d in PR_Unlock () from /usr/lib/libnspr4.so.0d
#3 0x00007fcf2ccbdd2d in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#4 0x00007fcf2cc3d20e in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#5 0x00007fcf2cc3deac in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#6 0x00007fcf2ccbd4a5 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#7 0x00007fcf2ccbda05 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#8 0x00007fcf2ccbb94d in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#9 0x00007fcf2cc901f4 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#10 0x00007fcf2cc09057 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#11 0x00007fcf2cbf6dfe in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#12 0x00007fcf372a33b4 in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#13 0x00007fcf372a66c5 in ?? () from /usr/lib/libglib-2.0.so.0
#14 0x00007fcf372a69e5 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#15 0x00007fcf38b89d63 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#16 0x000000000041c120 in ?? ()
#17 0x00007fcf35ca01c4 in __libc_start_main () from /lib/libc.so.6
#18 0x000000000040dcb9 in ?? ()
#19 0x00007fff41d6b778 in ?? ()
#20 0x0000000000000000 in ?? ()

Though I'm not particularly adept at gdb.

Its hard to reproduce, takes sometimes up to 5 minuts of clicking around and entering text into the search box to get it to do it.

Revision history for this message
Matjam (chrome) wrote :
Download full text (11.6 KiB)

Added the dbg packages for what I could, and printed a bt for all threads while it was spinning. Hopefully this will help a little.

Let me know what else is useful information. I seem to be able to reproduce this easily now. :)

Thread 7 (Thread 0x424f6950 (LWP 8539)):
#0 0x00007f55df447aa6 in poll () from /lib/libc.so.6
#1 0x00007f55d6c4c450 in PR_Poll (pds=0x7795c8, npds=1, timeout=4294967295) at ptio.c:3895
#2 0x00007f55d5cbb120 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#3 0x00007f55d5cbb5bb in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#4 0x00007f55d5cbb7f9 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#5 0x00007f55d63b28ef in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#6 0x00007f55d6387125 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#7 0x00007f55d5cbb3e0 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#8 0x00007f55d63b294d in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#9 0x00007f55d6387125 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#10 0x00007f55d63b261b in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#11 0x00007f55d6c501ca in _pt_root (arg=<value optimized out>) at ptthread.c:221
#12 0x00007f55df6e13f7 in start_thread () from /lib/libpthread.so.0
#13 0x00007f55df45095d in clone () from /lib/libc.so.6
#14 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x419b2950 (LWP 8540)):
#0 0x00007f55df6e5e1d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007f55d6c49e29 in pt_TimedWait (cv=0x6cae08, ml=0x6cad50, timeout=673) at ptsynch.c:280
#2 0x00007f55d6c4aa5a in PR_WaitCondVar (cvar=0x6cae00, timeout=3673) at ptsynch.c:407
#3 0x00007f55d63b5134 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#4 0x00007f55d63b294d in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#5 0x00007f55d6387125 in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#6 0x00007f55d63b261b in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#7 0x00007f55d6c501ca in _pt_root (arg=<value optimized out>) at ptthread.c:221
#8 0x00007f55df6e13f7 in start_thread () from /lib/libpthread.so.0
#9 0x00007f55df45095d in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x42cf7950 (LWP 8541)):
#0 0x00007f55df6e5b99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007f55d6c4aaec in PR_WaitCondVar (cvar=0xdc1f30, timeout=4294967295) at ptsynch.c:405
#2 0x00007f55d61cb34a in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#3 0x00007f55d6c501ca in _pt_root (arg=<value optimized out>) at ptthread.c:221
#4 0x00007f55df6e13f7 in start_thread () from /lib/libpthread.so.0
#5 0x00007f55df45095d in clone () from /lib/libc.so.6
#6 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x434f8950 (LWP 8542)):
#0 0x00007f55df6e5b99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007f55d6c4aaec in PR_WaitCondVar (cvar=0xdc2370, timeout=4294967295) at ptsynch.c:405
#2 0x00007f55d61cc2ff in ?? () from /usr/lib/xulrunner-1.9b3/libxul.so
#3 0x00007f55d6c501ca in _pt_root (arg=<value optimized out>) at ptthread.c:221
#4 0x00007f55df6e13f7 in start_thread () from /lib/libpthread.so.0
#5 0x00007f55df45095d in clone () from /lib/libc.so.6
#6 0x0000000000000000 in ?? (...

Revision history for this message
Matjam (chrome) wrote : How to reproduce

Someone please try to reproduce with the following steps:

1. Open Yelp via the top launch button.

2. Select a large chunk of text, more than 3-4 lines worth.

3. Watch CPU usage. Should be pegged on one CPU.

Revision history for this message
Matjam (chrome) wrote :

This should be fixed for hardy. Can someone please try reproducing this?

I find that the CPU only pegs after I click elsewhere on the page after selecting the text.

Revision history for this message
Sebastien Bacher (seb128) wrote :

does anybody still get the issue on hardy?

Revision history for this message
Pedro Villavicencio (pedro) wrote :

We are closing this bug report because it lacks the information we need to investigate the problem, as described in the previous comments. Please reopen it if you can give us the missing information, and don't hesitate to submit bug reports in the future. To reopen the bug report you can click on the current status, under the Status column, and change the Status back to "New". Thanks again!.

Changed in yelp:
status: Incomplete → Invalid
Revision history for this message
TienFu Chen (ctf) wrote :

Bug remains in Natty 64 bit.

Steps to reproduce:
1.Open a gnome terminal
2.Press F1, the yelp window will show up
3.Click at the search bar, type anything then enter.
4.Click at the "Gnome Terminal Manual"
5.The CPU usage will soon reach 100%.

TienFu Chen (ctf)
Changed in yelp (Ubuntu):
status: Invalid → Confirmed
Revision history for this message
TienFu Chen (ctf) wrote :

log from apport-bug attached.

Revision history for this message
Robert Roth (evfool) wrote :

@Tim Chen: the issue you reported does not seem to be the same as the one tracked here. Exactly the same issue as the one you commented in comment 10 is tracked in bug #872114, so I am setting this back to Invalid, please comment on the other bug about the issue you have.

Changed in yelp (Ubuntu):
status: Confirmed → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.