Re: [Epiphany] mozilla-notifiers: Hang during startup



On Tue, 2003-05-06 at 06:01, Ryan Boren wrote:
> I'm having some problems with the following commit:
> 
> 2003-05-04  Marco Pesenti Gritti  <marco@it.gnome.org>
>  
>         * embed/mozilla/mozilla-embed-single.cpp:
>         * embed/mozilla/mozilla-notifiers.cpp:
>         * embed/mozilla/mozilla-notifiers.h:
>  
>         Initialize mozilla prefs on startup every time. That is
> necessary
>         if people change them with gconf-editor. This is a 10 ms
> regression
>         on startup but ... it's necessary. What worries me more is the
> 130 ms
>         the notifiers registration takes, that's odd.
> 
> 
> With this change, Epiphany hangs during startup.  Attached is a snippet
> of strace output.  Epiphany keeps looping  over stuff dealing with 
> .gnome2/epiphany/mozilla/epiphany/prefs.js.  If I back out the above
> change, everything is fine.  Strangely, I don't see this bug when I run
> Epiphany as root.  Instead, I see the following error message but
> Epiphany comes up just fine.
> 
> ** (epiphany-bin:5511): CRITICAL **: file mozilla-embed-single.cpp: line
> 191 (void mozilla_load_proxy_prefs(MozillaEmbedSingle*)): assertion `tmp
> != NULL' failed
>  
> Thinking the hang might be due to a configuration issue, I tried
> removing .gnome2/epiphany and .gconf/apps/epiphany from my regular user
> account.  That didn't help.
> 
> Is anyone else seeing this?  I'll try to get a newer mozilla and see if
> that helps.  I'm using blizzard's 2003040907_trunk_rh8_gtk2 rpms on RH9.
> 
> Ryan

It would be better to open a bug about this. (bugzilla.gnome.org).
One thing that could help debugging would be to see which part of
add_notification_and_notify is causing it (removing parts of it I guess
;).

The notification registration:

        cnxn_id = gconf_client_notify_add (client, key, func, user_data,
NULL, &error);
        if (eel_gconf_handle_error (&error))
        {
                if (cnxn_id != EEL_GCONF_UNDEFINED_CONNECTION)
                {
                        gconf_client_notify_remove (client, cnxn_id);
                }
                return;
        }

The notify part:

entry = gconf_client_get_entry (client, key, NULL, TRUE, &error);
        if (eel_gconf_handle_error (&error))
        {
                return;
        }
        g_return_if_fail (entry != NULL);
                                                                                                   
        if (entry->value != NULL)
        {
                func (client, cnxn_id, entry, user_data);
        }
        gconf_entry_free (entry);

It could also be a problem on your system, given that it works for root.
There is a page about it, with troubleshooting section.
http://www.gnome.org/projects/gconf/

Marco




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