Bug 783557

Summary: gnome-shell hangs after login with >100% CPU
Product: [Fedora] Fedora Reporter: Bruce-Robert Pocock <brpocock>
Component: gnome-shellAssignee: Owen Taylor <otaylor>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 16CC: maxamillion, otaylor, samkraju, walters
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-13 20:19:12 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Bruce-Robert Pocock 2012-01-20 20:15:20 UTC
On login, gnome-shell is normal and responsive for a *brief* interval (perhaps 30 seconds); then, effectively hangs. This locks out the entire X session (keyboard, mouse, et al). Using C-A-PFn to bring up a text terminal, I can see that “top” reports >100% CPU usage by gnome-shell. Possibly related, “iotop” shows that “tracker” is running heavily … however, this may just be it being opportunistic.

I naïvely attempted to connect gdb to the running process, and it *appears* to be looping in a JavaScript interpreter/compiler… I'm not sure how to determine which script, if any, is hanging…

There don't appear to be any relevant entries in .xsession-errors

This occurs 100% of the time with my usual user account on that machine; no other users appear to be affected, but I'm unable to determine what setting(s) might be doing it. Disabling all extensions has no effect (hang still occurs) Just for fun (coïncidence?) this began happening shortly after setting up a Google account with the “Online Accounts” tool. I can't think of any other configuration changes that occurred around that time; but I wouldn't think (?) that the shell itself would hang up if there were a problem with interacting with Google. (In fallback mode, Evolution et al. appear to work just fine with the Google account.)

Version-Release number of selected component (if applicable):
gnome-shell-3.2.1-2.fc16.x86_64


How reproducible:

100%. Time delay before hang may vary slightly, usually under one minute.

Steps to Reproduce:

Occurs shortly after login
  
Actual results:

Hang (in JavaScript?)

Expected results:

Nothing :-)

Additional info:

I am a developer, myself, so if there's anything that I can gather (perhaps a way to ID the responsible JavaScript file from gdb? Something like a program counter/pointer I could print?) please, ask away…!

Comment 1 Bruce-Robert Pocock 2012-01-20 20:29:28 UTC
d'oh. Page 4 of Google results had https://live.gnome.org/GnomeShell/Debugging which taught me gjc_dumpstack() — I'll try that tonight, and post the results.

Comment 2 Bruce-Robert Pocock 2012-02-02 16:56:57 UTC
Well, I was trying to “catch it” in the JavaScript loop again, but it's not actually sleeping there any more. (Perhaps I was just very unlucky, or else the code has been updated?)

Same (apparent) behaviour, but I'm seeing 99%-100% CPU use in gnome-shell, with typically a backtrace identical to or similar to the following. It appears to be updating … perhaps IM accounts?

Note that I logged in using gdm/gnome-shell about 36 hours ago, and the shell is still pinning the CPU around 99% “most of the time.” Logged in via SSH, I do see it “come and go,” dropping to a respectable 6-20% CPU utilization. (That's still awfully high, for a desktop session with no user activity, but I could live with it.)

#0  0x000000332e22333b in g_once_init_enter (value_location=0x332e44dc30)
    at /usr/include/glib-2.0/glib/gthread.h:347
#1  gee_read_only_collection_get_type () at readonlycollection.c:656
#2  0x000000332e223658 in _vala_gee_read_only_collection_set_property (object=0x3b665720 [GeeReadOnlyCollection], 
    property_id=2, value=0x7fff065d2a20, pspec=0x21bc680 [GParamPointer]) at readonlycollection.c:695
#3  0x0000003316c1223e in object_set_property (nqueue=0xbcd1620, value=0xa996678, pspec=0x21bc680 [GParamPointer], 
    object=0x3b665720 [GeeReadOnlyCollection]) at gobject.c:1199
#4  g_object_constructor (type=<optimized out>, n_construct_properties=<optimized out>, construct_params=0x1bac1f50)
    at gobject.c:1643
#5  0x0000003316c14914 in g_object_newv (object_type=<optimized out>, n_parameters=177825376, 
    parameters=<optimized out>) at gobject.c:1493
#6  0x0000003316c15b0c in g_object_new (object_type=35386304, first_property_name=0x0) at gobject.c:1322
#7  0x000000332e222e87 in gee_read_only_collection_construct (object_type=<optimized out>, g_type=64, g_dup_func=
    0x3315461cf0 <g_strdup>, g_destroy_func=0x331544b7c0 <g_free>, collection=0x2f6c010) at readonlycollection.c:226
#8  0x000000332e209863 in gee_abstract_collection_real_get_read_only_view (base=0x2f6c010 [GeeHashSet])
    at abstractcollection.c:1235
#9  0x000000332e20d217 in gee_abstract_multi_map_real_get (key=0x2b5256c0, base=<optimized out>)
    at abstractmultimap.c:558
#10 gee_abstract_multi_map_real_get (base=<optimized out>, key=0x2b5256c0) at abstractmultimap.c:545
#11 0x000000333b611726 in folks_abstract_field_details_extend_parameters (self=0x273ed80 [FolksEmailFieldDetails], 
    additional=0x37d3a20) at abstract-field-details.c:272
#12 0x000000333b627ed9 in _folks_individual_update_email_addresses (self=0x1c19ee70 [FolksIndividual])
    at individual.c:5671
#13 0x000000333b62ba3a in _folks_individual_update_fields (self=0x1c19ee70 [FolksIndividual]) at individual.c:2985
#14 _folks_individual_set_personas (self=0x1c19ee70 [FolksIndividual], personas=<optimized out>, 
    replacement_individual=0x0) at individual.c:6834
#15 0x000000333b62bfaa in _folks_individual_store_personas_changed_cb (reason=<optimized out>, 
    actor=<optimized out>, message=<optimized out>, removed=0x17a689e0, added=<optimized out>, 
    store=<optimized out>, self=0x1c19ee70 [FolksIndividual]) at individual.c:2964
#16 __folks_individual_store_personas_changed_cb_folks_persona_store_personas_changed (_sender=<optimized out>, 
    added=<optimized out>, removed=0x17a689e0, message=<optimized out>, actor=<optimized out>, 
    reason=<optimized out>, self=0x1c19ee70) at individual.c:6319
#17 0x000000333b638cbd in g_cclosure_user_marshal_VOID__OBJECT_OBJECT_STRING_OBJECT_ENUM (closure=<optimized out>, 
    return_value=<optimized out>, n_param_values=<optimized out>, param_values=0xb0a070, 
    invocation_hint=<optimized out>, marshal_data=<optimized out>) at persona-store.c:723
#18 0x0000003316c0ea24 in g_closure_invoke (closure=0x38f30d80, return_value=0x0, n_param_values=6, param_values=
    0xb0a070, invocation_hint=<optimized out>) at gclosure.c:774
#19 0x0000003316c20d17 in signal_emit_unlocked_R (node=<optimized out>, detail=0, instance=0x219f260, 
    emission_return=0x0, instance_and_params=0xb0a070) at gsignal.c:3272
#20 0x0000003316c2a141 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, 
    detail=<optimized out>, var_args=<optimized out>) at gsignal.c:3003
#21 0x0000003316c2a4cd in g_signal_emit_by_name (instance=0x219f260, detailed_signal=
    0x333b645553 "personas-changed") at gsignal.c:3097
#22 0x000000333b638ff2 in _folks_persona_store_emit_personas_changed (self=0x219f260 [EdsfPersonaStore], 
    added=<optimized out>, removed=0x613d8f0, message=0x0, actor=0x0, reason=FOLKS_GROUP_DETAILS_CHANGE_REASON_NONE)
    at persona-store.c:422
#23 0x00007fe704fe255e in _edsf_persona_store_contacts_removed_cb (contacts_ids=<optimized out>, self=
    0x219f260 [EdsfPersonaStore]) at edsf-persona-store.c:8932
#24 __edsf_persona_store_contacts_removed_cb_e_book_client_view_objects_removed (_sender=<optimized out>, 
    object=<optimized out>, self=0x219f260) at edsf-persona-store.c:2088
#25 0x0000003316c0ea24 in g_closure_invoke (closure=0x352ce70, return_value=0x0, n_param_values=2, param_values=
    0x3106e10, invocation_hint=<optimized out>) at gclosure.c:774
#26 0x0000003316c20d17 in signal_emit_unlocked_R (node=<optimized out>, detail=0, instance=0x22b3ac0, 
    emission_return=0x0, instance_and_params=0x3106e10) at gsignal.c:3272
#27 0x0000003316c2a141 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, 
---Type <return> to continue, or q <return> to quit--- 
    detail=<optimized out>, var_args=<optimized out>) at gsignal.c:3003
#28 0x0000003316c2a2e2 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, 
    detail=<optimized out>) at gsignal.c:3060
#29 0x000000357be1bd8a in objects_removed_cb (view=<optimized out>, ids=<optimized out>, object=<optimized out>)
    at e-book-client-view.c:116
#30 objects_removed_cb (object=<optimized out>, ids=<optimized out>, view=0x22b3ac0 [EBookClientView])
    at e-book-client-view.c:101
#31 0x0000003316c0ea24 in g_closure_invoke (closure=0xebafd0, return_value=0x0, n_param_values=2, param_values=
    0x28e16d00, invocation_hint=<optimized out>) at gclosure.c:774
#32 0x0000003316c20d17 in signal_emit_unlocked_R (node=<optimized out>, detail=0, instance=0x7fe6e40026e0, 
    emission_return=0x0, instance_and_params=0x28e16d00) at gsignal.c:3272
#33 0x0000003316c2a141 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, 
    detail=<optimized out>, var_args=<optimized out>) at gsignal.c:3003
#34 0x0000003316c2a2e2 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, 
    detail=<optimized out>) at gsignal.c:3060
#35 0x00007fe704da8f26 in e_gdbus_proxy_emit_signal (proxy=0x7fe6e40026e0 [EGdbusBookViewProxy], 
    parameters=<optimized out>, signal_id=450, signal_type=<optimized out>) at e-gdbus-templates.c:632
#36 0x0000003316805d64 in ffi_call_unix64 () at ../src/x86/unix64.S:75
#37 0x0000003316805785 in ffi_call (cif=0x7fff065d3f90, fn=0x357be36970 <g_signal>, rvalue=<optimized out>, 
    avalue=<optimized out>) at ../src/x86/ffi64.c:486
#38 0x0000003316c0ef4b in g_cclosure_marshal_generic (closure=0x1998d70, return_gvalue=0x0, n_param_values=4, 
    param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=0x357be36970) at gclosure.c:1189
#39 0x0000003316c0ea24 in g_closure_invoke (closure=0x1998d70, return_value=0x0, n_param_values=4, param_values=
    0x3531b60, invocation_hint=<optimized out>) at gclosure.c:774
#40 0x0000003316c20b5c in signal_emit_unlocked_R (node=<optimized out>, detail=0, instance=0x7fe6e40026e0, 
    emission_return=0x0, instance_and_params=0x3531b60) at gsignal.c:3310
#41 0x0000003316c2a141 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, 
    detail=<optimized out>, var_args=<optimized out>) at gsignal.c:3003
#42 0x0000003316c2a2e2 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, 
    detail=<optimized out>) at gsignal.c:3060
#43 0x00000033184bb0bf in on_signal_received (connection=<optimized out>, sender_name=0x7fe70c001fb0 ":1.89", 
    object_path=<optimized out>, interface_name=<optimized out>, signal_name=0x7fe70c005000 "objects_removed", 
    parameters=0x28e16ca0, user_data=0x7fe6e4006d20) at gdbusproxy.c:922
#44 0x00000033184a997e in emit_signal_instance_in_idle_cb (data=0x7fe70c002c70) at gdbusconnection.c:3613
#45 0x0000003315444acd in g_main_dispatch (context=0x97c940) at gmain.c:2441
#46 g_main_context_dispatch (context=0x97c940) at gmain.c:3011
#47 0x00000033154452c8 in g_main_context_iterate (context=0x97c940, block=<optimized out>, dispatch=1, 
    self=<optimized out>) at gmain.c:3089
#48 0x0000003315445815 in g_main_loop_run (loop=0x981e20) at gmain.c:3297
#49 0x000000357a256ab1 in meta_run () at core/main.c:555
#50 0x00000000004029e1 in main (argc=1, argv=0x7fff065d4798) at main.c:571

Comment 3 Fedora End Of Life 2013-01-16 16:31:13 UTC
This message is a reminder that Fedora 16 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 16. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '16'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 16's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 16 is end of life. If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora, you are encouraged to click on 
"Clone This Bug" and open it against that version of Fedora.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 4 Fedora End Of Life 2013-02-13 20:19:15 UTC
Fedora 16 changed to end-of-life (EOL) status on 2013-02-12. Fedora 16 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.