Comment 21 for bug 293535

D J Gardner (djgardner) wrote :

I've assigned this as a gconf bug, because:
 (a) it fairly clearly is, from the work-arounds
 (b) it just shouldn't happen that certain configuration item should put the program into a loop.
 (c) this bug needs some activity to stop it being deleted.

Features of this bug as I've seen it:

 On upgrading our laptop from intrepid to jaunty (amd64) my login is fine, but my wife's login suffers from gconfd taking 20-20% CPU. Running ltrace on the process gives what seems to be a semi-repeating pattern of:

1. about 400 lines of CORBA_string_dup, gconf_entry_get_is_default, gconf_entry_get_is_writable, gconf_entry_free, CORBA_string_dup, gconf_entry_get_value, gconf_fill_corba_value_from_gconf_value, ....
2. about 400 lines of g_str_hash, which includes an unchanging 6-line repeat (return codes and parameters unchanging)
3. then about 5 pairs of ORBit_small_allocORBit_small_allocbuff,
Then the CORBA_string_dup lines restart

after a while of this I sometimes get this sort of pattern too:
time(NULL) = 1243842609
gconf_sources_query_value(0x113a300, 0x11ed131, 0x11ea560, 1, 0x7ffff5d59d14) = 0
CORBA_string_dup(0x40c726, 0, 0x7ffff5d59d80, 0xffffffff, 0xfefefefefefefeff) = 0x11d56b1
g_free(0, 0x40c727, 0, 0, 0xfefefefefefefeff) = 0x11d56b1
gconf_locale_list_unref(0x11e34c0, 0x40c727, 0, 0, 0xfefefefefefefeff) = 1
gconf_invalid_corba_value(0x11e34c0, 0x40c727, 0, 0, 0xfefefefefefefeff) = 0x11f9ef0
gconf_log(7, 0x40bfd0, 0x11d56b1, 0x40c296, 88) = 0x60f7a0
gconf_locale_cache_get_list(0x148cc20, 0x11d56b1, 0, 1, 0x7ffff5d59da0 <unfinished ...>
g_str_hash(0x11d56b1, 0x11d56b1, 0, 1, 0x7ffff5d59da0) = 0x81510175
g_str_equal(0x11f9e30, 0x11d56b1, 0x4054c0, 0x11d56bc, 0x7ffff5d59da0) = 1
<... gconf_locale_cache_get_list resumed> ) = 0x11e34c0
time(NULL) = 1243842609

Killing gconfd-2 just makes it respawn and the problem is not resolved.