Stuck and 100% CPU usage

Bug #617041 reported by Roman Yepishev
88
This bug affects 17 people
Affects Status Importance Assigned to Milestone
Ubuntu Single Sign On Client
Fix Released
Critical
Alejandro J. Cura
ubuntu-sso-client (Ubuntu)
Fix Released
Critical
Ubuntu One Client Engineering team
Maverick
Fix Released
Critical
Ubuntu One Client Engineering team

Bug Description

After ubuntu-sso-client is queried by ubuntuone-preferences it enters a non-responsive (dbus) state and causes 100% CPU usage.

The attempt to bt the running instance ended up with:

(gdb) bt
#0 0x00007ffff7bcdb80 in __read_nocancel () from /lib/libpthread.so.0
#1 0x00007ffff4ed2953 in ?? () from /usr/lib/pymodules/python2.6/gtk-2.0/gtk/_gtk.so
#2 0x00007ffff5867fea in g_main_context_check () from /lib/libglib-2.0.so.0
#3 0x00007ffff58689a3 in ?? () from /lib/libglib-2.0.so.0
#4 0x00007ffff5869135 in g_main_loop_run () from /lib/libglib-2.0.so.0
#5 0x00007ffff48198f7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#6 0x00007ffff4ed2852 in ?? () from /usr/lib/pymodules/python2.6/gtk-2.0/gtk/_gtk.so
#7 0x00000000004a5298 in PyEval_EvalFrameEx ()
#8 0x00000000004a6b81 in PyEval_EvalCodeEx ()
#9 0x00000000004a4d09 in PyEval_EvalFrameEx ()
#10 0x00000000004a5a60 in PyEval_EvalFrameEx ()
#11 0x00000000004a6b81 in PyEval_EvalCodeEx ()
#12 0x00000000004a6c52 in PyEval_EvalCode ()
#13 0x00000000004c6fce in PyRun_FileExFlags ()
#14 0x00000000004c71e4 in PyRun_SimpleFileExFlags ()
#15 0x00000000004180c1 in Py_Main ()
#16 0x00007ffff69d2d8d in __libc_start_main () from /lib/libc.so.6
#17 0x00000000004172c9 in _start ()

Related branches

Revision history for this message
Roman Yepishev (rye) wrote :
Changed in ubuntu-sso-client:
assignee: nobody → Naty Bidart (nataliabidart)
importance: Undecided → High
Revision history for this message
Natalia Bidart (nataliabidart) wrote :

I could also reproduce this by starting the login process from syncdaemon and canceling it.

summary: - Stuck and 100% CPU usage after ubuntuone-preferences is started
+ Stuck and 100% CPU usage
Changed in ubuntu-sso-client:
status: New → Triaged
importance: High → Critical
status: Triaged → Confirmed
Revision history for this message
Alejandro J. Cura (alecu) wrote :

This seems related to the webkit instance that's embeded for the terms and conditions dialog.
When calling the dbus interface with a dummy terms and conditions url, the cpu usage stayed low; if called with the real url "https://one.ubuntu.com/terms", the cpu is maxed out.

I suggest the webkit widget should only be instanciated while showing the terms and conditions, and it should be destroyed after the user clicks on the "Back" button in the dialog.

tags: added: u1-maverick ubuntu-10.10-beta
Changed in ubuntu-sso-client (Ubuntu):
status: New → Triaged
importance: Undecided → Critical
assignee: nobody → Ubuntu One Desktop+ team (ubuntuone-desktop+)
tags: added: desktop+
Changed in ubuntu-sso-client (Ubuntu):
milestone: none → ubuntu-10.10-beta
tags: removed: ubuntu-10.10-beta
Changed in ubuntu-sso-client:
status: Confirmed → In Progress
Revision history for this message
Roman Yepishev (rye) wrote :
Download full text (8.3 KiB)

Better traceback from gdb with python-dbg installed:

This happens even if no GUI is instantiated, so webkit may not be guilty.

#0 0x00007ffff6a8e1a8 in poll () from /lib/libc.so.6
#1 0x00007ffff5868979 in ?? () from /lib/libglib-2.0.so.0
#2 0x00007ffff5869125 in g_main_loop_run () from /lib/libglib-2.0.so.0
#3 0x00007ffff4818a47 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#4 0x00007ffff4ed2852 in ?? () from /usr/lib/pymodules/python2.6/gtk-2.0/gtk/_gtk.so
#5 0x00000000004a52e8 in call_function (f=
    Frame 0x1635b00, for file /usr/lib/python2.6/dist-packages/twisted/internet/gtk2reactor.py, line 270, in run (self=<Gtk2Reactor(waker=<_UnixWaker(i=9, fileno=<function at remote 0x12c8de8>, reactor=<...>, o=10) at remote 0x15e1d10>, threadCallQueue=[], _cancellations=0, _sources={<...>: 5}, _justStopped=False, _newTimedCalls=[], _pendingTimedCalls=[], _Gtk2Reactor__iteration=<built-in function main_iteration>, _internalReaders=set([<...>]), _started=True, _simtag=260, _Gtk2Reactor__run=<built-in function main>, usingThreads=True, _eventTriggers={'startup': <_ThreePhaseEvent(during=[], state='BASE', after=[], finishedBefore=[], before=[]) at remote 0x15e1c50>, 'shutdown': <_ThreePhaseEvent(during=[(<instancemethod at remote 0x1008e60>, (), {}), (<instancemethod at remote 0x1008eb0>, (...), {})], state='BASE', after=[], before=[]) at remote 0x15e1c90>}, _installSignalHandlers=1, _Gtk2Reactor__pending=<built-in function events_pending>, running=True, resolver=<ThreadedResolver(_runningQueries={}, reactor=<...>) ...(truncated), throwflag=<value optimized out>)
    at ../Python/ceval.c:3734
#6 PyEval_EvalFrameEx (f=
    Frame 0x1635b00, for file /usr/lib/python2.6/dist-packages/twisted/internet/gtk2reactor.py, line 270, in run (self=<Gtk2Reactor(waker=<_UnixWaker(i=9, fileno=<function at remote 0x12c8de8>, reactor=<...>, o=10) at remote 0x15e1d10>, threadCallQueue=[], _cancellations=0, _sources={<...>: 5}, _justStopped=False, _newTimedCalls=[], _pendingTimedCalls=[], _Gtk2Reactor__iteration=<built-in function main_iteration>, _internalReaders=set([<...>]), _started=True, _simtag=260, _Gtk2Reactor__run=<built-in function main>, usingThreads=True, _eventTriggers={'startup': <_ThreePhaseEvent(during=[], state='BASE', after=[], finishedBefore=[], before=[]) at remote 0x15e1c50>, 'shutdown': <_ThreePhaseEvent(during=[(<instancemethod at remote 0x1008e60>, (), {}), (<instancemethod at remote 0x1008eb0>, (...), {})], state='BASE', after=[], before=[]) at remote 0x15e1c90>}, _installSignalHandlers=1, _Gtk2Reactor__pending=<built-in function events_pending>, running=True, resolver=<ThreadedResolver(_runningQueries={}, reactor=<...>) ...(truncated), throwflag=<value optimized out>)
    at ../Python/ceval.c:2412
#7 0x00000000004a6bd1 in PyEval_EvalCodeEx (co=0x12c86c0, globals=<value optimized out>, locals=<value optimized out>, args=0x2,
    argcount=<value optimized out>, kws=<value optimized out>, kwcount=0, defs=0x13c8d28, defcount=1, closure=0x0) at ../Python/ceval.c:3000
#8 0x00000000004a4d59 in fast_function (f=
    Frame 0x1633560, for file /usr/lib/ubuntu-sso-client/ubuntu-sso-login, line 221, in main (self=<LoginMain(_LoginMain__bus=<...

Read more...

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-sso-client - 0.99.1-0ubuntu1

---------------
ubuntu-sso-client (0.99.1-0ubuntu1) maverick; urgency=low

  * New upstream release:
    - Delayed opening the webkit browser to the latest possible. (LP: #617041)
    (nataliabidart)
    - Use a proper dictionary with different attributes for each key so old
    keys are not overwritten nor deleted. (LP: #617347) (alecu)
 -- Natalia Bidart (nessita) <email address hidden> Thu, 19 Aug 2010 13:02:10 -0300

Changed in ubuntu-sso-client (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Doug McMahon (mc3man) wrote :

See absolutely no change after installing 0.99.1-0ubuntu1, cpu usage goes to 100% and stays there till the process is killed or logging out of session.

Revision history for this message
Natalia Bidart (nataliabidart) wrote :

Doug,

We know we haven't solved the issue, we just delayed the browser opening until the latest possible.
Could you please detail what steps are you following to make the cpu goes to 100%?

Thanks!

Changed in ubuntu-sso-client (Ubuntu):
status: Fix Released → Triaged
Revision history for this message
Doug McMahon (mc3man) wrote :

Naty Bidart wrote >
We know we haven't solved the issue, we just delayed the browser opening until the latest possible.

Simply by just opening the ubuntu one preferences. If ubuntu one is set to start up on boot then cpu use is fine, ie. it connects and syncs.
It's only when the preferences is opened that the issue then occurs (whether set to run at boot or not

Revision history for this message
Natalia Bidart (nataliabidart) wrote :

Current code in ubuntu-sso-client provides the two servies (old and new). Since ubuntuone-preferences uses the old service, we'd re analize this bug after removing the old service.

Changed in ubuntu-sso-client:
status: In Progress → Confirmed
Revision history for this message
Doug McMahon (mc3man) wrote :

The update of ubuntuone* (1.3.90-0ubuntu1) tonight resolved the cpu issue here - two separate installs

Revision history for this message
Tim Cuthbertson (ratcheer) wrote :

Today's ubuntuone* 1.3.90-9 updates fixed the problem for me, as well.

Thank you, Tim

Revision history for this message
Natalia Bidart (nataliabidart) wrote :

Confirmed is still happening with ubuntu-sso-client v 0.99.4, when browsing the terms and conditions.

Changed in ubuntu-sso-client:
assignee: Naty Bidart (nataliabidart) → Alejandro J. Cura (alecu)
Changed in ubuntu-sso-client:
status: Confirmed → In Progress
dobey (dobey)
Changed in ubuntu-sso-client:
status: In Progress → Fix Committed
Changed in ubuntu-sso-client (Ubuntu):
milestone: ubuntu-10.10-beta → ubuntu-10.10
Changed in ubuntu-sso-client (Ubuntu Maverick):
status: Triaged → Fix Released
Changed in ubuntu-sso-client:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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