After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 328109 - drivel crashes on log in
drivel crashes on log in
Status: RESOLVED FIXED
Product: drivel
Classification: Deprecated
Component: general
2.0.x
Other Linux
: Normal major
: ---
Assigned To: Todd Kulesza
Todd Kulesza
Depends on:
Blocks:
 
 
Reported: 2006-01-22 00:18 UTC by Ian Burrell
Modified: 2009-08-29 22:12 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Ian Burrell 2006-01-22 00:18:36 UTC
drivel crashes after pressing Log In button.  This is on Fedora Rawhide with the drivel-2.0.2-1.fc5.x86_64 package.  The same version works fine on Fedora Core 4.


Stderr output:

(drivel:9085): Gtk-WARNING **: Theme directory 16x16/status16x16/stock/chart of theme gnome has no size field

(drivel:9085): libglade-WARNING **: could not find widget creation function

(drivel:9085): GLib-GObject-WARNING **: invalid cast from `GtkLabel' to `EphySpinner'


Stack trace:

Thread 1 (process 9085)

  • #0 *__GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #1 *__GI_abort
    at abort.c line 88
  • #2 libgnomeui_segv_handle
    at gnome-ui-init.c line 799
  • #3 <signal handler called>
  • #4 ephy_spinner_start
    at ephy-spinner.c line 649
  • #5 queue_loop
    at msg_queue.c line 71
  • #6 g_timeout_dispatch
    at gmain.c line 3292
  • #7 IA__g_main_context_dispatch
    at gmain.c line 1916
  • #8 g_main_context_iterate
    at gmain.c line 2547
  • #9 IA__g_main_loop_run
    at gmain.c line 2751
  • #10 IA__gtk_main
    at gtkmain.c line 991
  • #11 main
    at main.c line 959
  • #12 __libc_start_main
    at libc-start.c line 231
  • #13 _start
  • #14 ??
  • #15 ??

Comment 1 palfrey 2006-03-09 01:30:13 UTC
Could you try re-running drivel with the "--g-fatal-warnings" flag added so that we can sort out those warnings (which will probably help resolve your issue)?
Comment 2 Ian Burrell 2006-03-09 04:38:56 UTC
When running it with "--g-fatal-warnings", only the second warning is displayed:

libglade-WARNING **: could not find widget creation function
Comment 3 palfrey 2006-03-09 10:04:04 UTC
Do you still get the same stack trace?
Comment 4 Toshio Kuratomi 2006-03-29 07:34:26 UTC
This is happening to me as well on Fedora Core 5 x86_64.  I was not able to duplicate on FC5-i386.

gdb with a breakpoint in ephy_spinner_new does not hit the breakpoint.  It segfaults in ephy_spinner_start()::

0x000000000041fffb in ephy_spinner_start (spinner=0x65c6b0)
    at ephy-spinner.c:649
649             if (spinner->details->timer_task == 0)
(gdb) p spinner
$1 = (EphySpinner *) 0x65c6b0
(gdb) p *spinner
$2 = {parent = {bin = {container = {widget = {object = {parent_instance = {
              g_type_instance = {g_class = 0x649600}, ref_count = 1,
              qdata = 0x749d00}, flags = 2098720}, private_flags = 15872,
          state = 0 '\0', saved_state = 0 '\0',
          name = 0x79dc20 "progress_spinner", style = 0x630070, requisition = {
            width = 0, height = 0}, allocation = {x = -1, y = -1, width = 1,
            height = 1}, window = 0x0, parent = 0x727540},
        focus_child = 0x3f0000003f000000, border_width = 0, need_resize = 0,
        resize_mode = 0, reallocate_redraws = 0, has_focus_chain = 0},
      child = 0x79da70}}, details = 0xffffff00000000}
(gdb) p *spinner->details
Cannot access memory at address 0xffffff00000000

Comment 5 Toshio Kuratomi 2006-03-29 07:40:46 UTC
backtrace generated with --g-fatal-warnings

Program received signal SIGABRT, Aborted.

Thread 47525155149312 (LWP 14599)

  • #0 raise
    from /lib64/libc.so.6
  • #1 abort
    from /lib64/libc.so.6
  • #2 g_logv
    from /usr/lib64/libglib-2.0.so.0
  • #3 g_log
    from /usr/lib64/libglib-2.0.so.0
  • #4 glade_register_widget
    from /usr/lib64/libglade-2.0.so.0
  • #5 glade_xml_build_widget
    from /usr/lib64/libglade-2.0.so.0
  • #6 glade_standard_build_children
    from /usr/lib64/libglade-2.0.so.0
  • #7 glade_xml_set_common_params
    from /usr/lib64/libglade-2.0.so.0
  • #8 glade_xml_build_widget
    from /usr/lib64/libglade-2.0.so.0
  • #9 glade_standard_build_children
    from /usr/lib64/libglade-2.0.so.0
  • #10 glade_xml_set_common_params
    from /usr/lib64/libglade-2.0.so.0
  • #11 glade_xml_build_widget
    from /usr/lib64/libglade-2.0.so.0
  • #12 glade_standard_build_children
    from /usr/lib64/libglade-2.0.so.0
  • #13 glade_xml_set_common_params
  • #14 glade_xml_handle_internal_child
    from /usr/lib64/libglade-2.0.so.0
  • #15 glade_standard_build_children
    from /usr/lib64/libglade-2.0.so.0
  • #16 glade_parser_parse_file
    from /usr/lib64/libglade-2.0.so.0
  • #17 glade_xml_set_common_params
    from /usr/lib64/libglade-2.0.so.0
  • #18 glade_xml_build_widget
    from /usr/lib64/libglade-2.0.so.0
  • #19 glade_xml_construct
    from /usr/lib64/libglade-2.0.so.0
  • #20 glade_xml_new
    from /usr/lib64/libglade-2.0.so.0
  • #21 load_glade_xml
    at utils.c line 96
  • #22 queue_loop
    at msg_queue.c line 63
  • #23 g_source_get_current_time
    from /usr/lib64/libglib-2.0.so.0
  • #24 g_main_context_dispatch
    from /usr/lib64/libglib-2.0.so.0
  • #25 g_main_context_check
    from /usr/lib64/libglib-2.0.so.0
  • #26 g_main_loop_run
    from /usr/lib64/libglib-2.0.so.0
  • #27 gtk_main
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #28 main
    at main.c line 959

Comment 6 Toshio Kuratomi 2006-03-29 07:49:17 UTC
Just to see what would happen, I made the following change:

--- msg_queue.c.segv    2006-03-28 23:36:47.000000000 -0800
+++ msg_queue.c 2006-03-28 23:36:52.000000000 -0800
@@ -67,7 +67,7 @@
        dialog = glade_xml_get_widget (xml, "progress_dialog");
        gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent));
-       spinner = glade_xml_get_widget (xml, "progress_spinner");
+       spinner = ephy_spinner_new();
        ephy_spinner_start (EPHY_SPINNER (spinner));

        label = glade_xml_get_widget (xml, "progress_label");

I get this output but avoid a SegFault:
(drivel:15126): libglade-WARNING **: could not find widget creation function

(drivel:15126): libglade-WARNING **: could not find widget creation function

(drivel:15126): GLib-GObject-WARNING **: invalid cast from `GtkLabel' to `EggDateTime'

** (drivel:15126): CRITICAL **: egg_datetime_set_lazy: assertion `EGG_IS_DATETIME (edt)' failed

(drivel:15126): GLib-GObject-WARNING **: unable to set property `text' of type `gchararray' from value of type `GdkPixbuf'

(drivel:15126): GLib-GObject-WARNING **: invalid cast from `GtkLabel' to `EggDateTime'

** (drivel:15126): CRITICAL **: egg_datetime_set_display_mode: assertion `EGG_IS_DATETIME (edt)' failed

A widget on the progress bar fails to load.  On the editor page, the custom date widget dos not load.  This is the same behaviour I see on FC5 i386.
Comment 7 Toshio Kuratomi 2006-05-03 16:25:30 UTC
I'm not deeply in tune with all the GNOME goings on, but do the last couple comments indicate a libglade bug?  If so, can someone point this at libglade instead of drivel?
Comment 8 Danielle Madeley 2006-05-03 16:36:04 UTC
(drivel:15126): libglade-WARNING **: could not find widget creation function

(drivel:15126): libglade-WARNING **: could not find widget creation function

These should not be ignored. When Glade can't find the symbol it needs to create a custom widget it shoves in a label to the effect of "[Custom widget creation failed]".

check to see what symbols it is trying to call (they're in the Glade file) and that they're not static (which shouldn't be). Then check how you're compiling the binary.
Comment 9 Toshio Kuratomi 2006-05-03 17:27:54 UTC
Here's the first widget in the glade file::
    <widget class="Custom" id="progress_spinner">
      <property name="visible">True</property>
      <property name="creation_function">ephy_spinner_new</property>

It's defined in src/ephy-spinner.c::
GtkWidget *
ephy_spinner_new (void)
{
    return GTK_WIDGET (g_object_new (EPHY_TYPE_SPINNER,
                     "visible-window", FALSE,
                     NULL));
}

No static there.

The second one is probably::
        <widget class="Custom" id="date">
          <property name="visible">True</property>
          <property name="creation_function">egg_datetime_new</property>

It's defined in src/libegg/egg-datetime.c::
GtkWidget *
egg_datetime_new (void)
{
    EggDateTime *edt;

    edt = g_object_new (EGG_TYPE_DATETIME, NULL);
    egg_datetime_set_from_time_t (edt, time (NULL));

    return GTK_WIDGET (edt);
}

I can configure --prefix=/usr; make CFLAGS='-O0 -g' and still produce the segfault.

Here's ephy-spinner's compile line (Minus -I's)::

if gcc -DHAVE_CONFIG_H -DGNOMELOCALEDIR=\""/usr/share/locale"\" -DDRIVEL_GLADE_DIR=\"/usr/share/drivel/glade\" -DDRIVEL_GLADE_FILE=\"drivel.glade\" -DDRIVEL_LANGUAGES_DIR=\"/usr/share/drivel/languages\" -DDATADIR=\""/usr/share"\" -DPREFIX=\""/usr"\" -DLIBDIR=\""/usr/lib"\" -DG_LOG_DOMAIN=\"Drivel\" -DSYSCONFDIR=\""/usr/etc"\" -DPIXMAPDIR=\""/usr/share/pixmaps"\" -std=c89 -O0 -g -MT ephy-spinner.o -MD -MP -MF ".deps/ephy-spinner.Tpo" \
  -c -o ephy-spinner.o `test -f 'ephy-spinner.c' || echo './'`ephy-spinner.c; \
then mv -f ".deps/ephy-spinner.Tpo" ".deps/ephy-spinner.Po"; \
else rm -f ".deps/ephy-spinner.Tpo"; exit 1; \

Here's drivel's link line (It was invoked by libtool)::
gcc -std=c89 -O0 -g -o drivel about.o atom.o blog_advogato.o blog_atom.o blog_blogger.o blog_lj.o blog_mt.o blog_offline.o dialogs.o drivel_request.o ephy-spinner.o insert_poll_dialog.o query_music_players.o journal.o login.o main.o md5.o msg_queue.o network.o tray.o utils.o xmlrpc.o -pthread  -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lgnome-keyring -lgnomecanvas-2 -lgnome-2 -lpopt -lpangoft2-1.0 -lgnomevfs-2 -lgconf-2 -lglade-2.0 -lgtksourceview-1.0 -lgnomeprint-2-2 -lart_lgpl_2 -lxml2 -lz -lbonobo-2 -lbonobo-activation -lORBit-2 -lgthread-2.0 -lgtkspell -laspell -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -L/usr/lib -lcurl ../src/libegg/libegg.a ./.libs/librbcorba.a

Both the Reporter and I are experiencing the SegFault on x86_64.  Under i386, I see the [Unable to create custom widget] label you refer to.  So there may be an issue with drivel's attempt to setup the custom widget AND a separate issue with libglade's failure method on x86_64.
Comment 10 Toshio Kuratomi 2006-05-03 23:17:37 UTC
I don't see anything in the diffs between 2.0.2 and HEAD that should affect this but I've just verified that the bug is not being triggered with current CVS HEAD.
Comment 11 Toshio Kuratomi 2006-06-14 14:35:29 UTC
Any word on a new release with this fixed?  Until this is fixed, drivel is useless on x86_64 Fedora  (Possibly other x86_64 distros as well).
Comment 12 Neil Williams 2009-08-29 22:12:50 UTC
All the quoted code has been removed from / disabled in SVN trunk but I can't test the bug because the blog engine behind the attempted login was not described in the bug report. Closing.