Bug 803872

Summary: Notification daemon aborts
Product: [Fedora] Fedora Reporter: walterhurry
Component: gtk3Assignee: Matthias Clasen <mclasen>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 17CC: davidz, jmccann, jpokorny, mclasen, rbgarga
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: 2012-08-10 14:05:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description walterhurry 2012-03-15 19:28:34 UTC
Description of problem:
Notification daemon aborts as soon as a notification is sent.

Version-Release number of selected component (if applicable):
notification-daemon-0.7.3-3.fc17.x86_64

How reproducible:
Always

Steps to Reproduce:
1.Ensure no notification daemon is running.
2.start /usr/libexec/notification-daemon in a terminal
3.In another terminal, type "notify-send Hello World"

  
Actual results:
In the first terminal, the process aborts with the following error:

GdkPixbuf-CRITICAL **: gdk_pixbuf_scale_simple: assertion `dest_width > 0' failed
Trace/breakpoint trap

Expected results:
A message in the system tray notification area

Additional info:
I am running LXDE with Openbox

Comment 1 Jan Pokorný [poki] 2012-07-19 16:33:09 UTC
*** Bug 828357 has been marked as a duplicate of this bug. ***

Comment 2 Jan Pokorný [poki] 2012-07-19 17:00:52 UTC
Accidentally, I also use LXDE (if it can be by any chance related to
not using Gnome 3).

$ rpm -qf /usr/libexec/notification-daemon 
notification-daemon-0.7.4-1.fc17.x86_64

$ rpm -qf $(ldd /usr/libexec/notification-daemon | grep '=> /' \
            | sed -e 's/.*=>\([^(]*\)(.*/\1/g') \
  | sort | uniq
atk-2.4.0-1.fc17.x86_64
cairo-1.10.2-7.fc17.x86_64
cairo-gobject-1.10.2-7.fc17.x86_64
expat-2.1.0-1.fc17.x86_64
fontconfig-2.8.0-7.fc17.x86_64
freetype-2.4.8-3.fc17.x86_64
gdk-pixbuf2-2.26.1-1.fc17.x86_64
glib2-2.32.3-1.fc17.x86_64
glibc-2.15-37.fc17.x86_64
gtk3-3.4.3-2.fc17.x86_64
libcanberra-0.28-6.fc17.x86_64
libcanberra-gtk3-0.28-6.fc17.x86_64
libffi-3.0.10-2.fc17.x86_64
libogg-1.3.0-1.fc17.x86_64
libpng-1.5.10-1.fc17.x86_64
libselinux-2.1.10-3.fc17.x86_64
libtdb-1.2.10-15.fc17.x86_64
libtool-ltdl-2.4.2-3.fc17.x86_64
libvorbis-1.3.3-1.fc17.x86_64
libX11-1.5.0-2.fc17.x86_64
libXau-1.0.6-3.fc17.x86_64
libxcb-1.8.1-1.fc17.x86_64
libXcomposite-0.4.3-3.fc17.x86_64
libXcursor-1.1.13-1.fc17.x86_64
libXdamage-1.1.3-3.fc17.x86_64
libXext-1.3.1-1.fc17.x86_64
libXfixes-5.0-2.fc17.x86_64
libXi-1.6.1-1.fc17.x86_64
libXinerama-1.1.2-1.fc17.x86_64
libXrandr-1.3.1-3.fc17.x86_64
libXrender-0.9.7-1.fc17.x86_64
nss-softokn-freebl-3.13.4-2.fc17.x86_64
pango-1.30.0-1.fc17.x86_64
pixman-0.24.4-2.fc17.x86_64
zlib-1.2.5-6.fc17.x86_64


Traceback obtained in the use case demonstrated in both this bug and
duplicate bug 828357 (slightly reformatted):

(gdb) bt
#0  g_logv
    (log_domain=0x34f8819e1e "GdkPixbuf",
    log_level=G_LOG_LEVEL_CRITICAL,
    format=0x34f28b565a "%s: assertion `%s' failed",
    args1=args1@entry=0x7fffffffdb08)
    at gmessages.h:101
#1  0x00000034f284e9e2 in g_log
    (log_domain=log_domain@entry=0x34f8819e1e "GdkPixbuf",
    log_level=log_level@entry=G_LOG_LEVEL_CRITICAL,
    format=format@entry=0x34f28b565a "%s: assertion `%s' failed")
    at gmessages.c:792
#2  0x00000034f284ea09 in g_return_if_fail_warning
    (log_domain=log_domain@entry=0x34f8819e1e "GdkPixbuf", 
    pretty_function=pretty_function@entry=0x34f881b6c0
        "gdk_pixbuf_scale_simple",
    expression=expression@entry=0x34f881b531 "dest_width > 0")
    at gmessages.c:801
#3  0x00000034f880e79a in gdk_pixbuf_scale_simple
    (src=src@entry=0x648c50 [GdkPixbuf],
    dest_width=0,
    dest_height=0, 
    interp_type=interp_type@entry=GDK_INTERP_BILINEAR)
    at gdk-pixbuf-scale.c:323
#4  0x0000003ac595348b in gtk_icon_theme_lookup_by_gicon
    (icon_theme=icon_theme@entry=0x676720 [GtkIconTheme],
    icon=0x648c50,
    size=size@entry=0,
    flags=flags@entry=(GTK_ICON_LOOKUP_USE_BUILTIN
                       | GTK_ICON_LOOKUP_FORCE_SIZE))
    at gtkicontheme.c:3926
#5  0x0000003ac59535b9 in gtk_icon_theme_lookup_by_gicon
    (icon_theme=icon_theme@entry=0x676720 [GtkIconTheme], 
    icon=<optimized out>,
    size=0,
    flags=flags@entry=(GTK_ICON_LOOKUP_USE_BUILTIN | GTK_ICON_LOOKUP_FORCE_SIZE))
    at gtkicontheme.c:3901
#6  0x0000003ac594dcdb in ensure_pixbuf_for_icon_name_or_gicon
    (context=0x67c520 [GtkStyleContext],
    self=0x676620 [GtkIconHelper])
    at gtkiconhelper.c:252
#7  _gtk_icon_helper_ensure_pixbuf
    (self=0x676620 [GtkIconHelper],
    context=context@entry=0x67c520 [GtkStyleContext])
    at gtkiconhelper.c:305
#8  0x0000003ac59f9642 in gtk_status_icon_update_image
    (status_icon=<optimized out>)
    at gtkstatusicon.c:1392
#9  0x0000003ac59fa3fa in gtk_status_icon_set_image
    (status_icon=<optimized out>,
    storage_type=storage_type@entry=
    GTK_IMAGE_GICON,
    data=<optimized out>)
    at gtkstatusicon.c:1744
#10 0x0000003ac59faef3 in gtk_status_icon_set_from_gicon
    (status_icon=<optimized out>, icon=<optimized out>)
    at gtkstatusicon.c:1855
#11 0x000000000040ae61 in update_idle
    (queue=0x6702b0 [NdQueue])
    at nd-queue.c:906
#12 0x00000034f28476e5 in g_main_dispatch
    (context=0x673bc0)
    at gmain.c:2539
#13 g_main_context_dispatch
    (context=context@entry=0x673bc0)
    at gmain.c:3075
#14 0x00000034f2847a18 in g_main_context_iterate
    (context=0x673bc0,
    block=block@entry=1,
    dispatch=dispatch@entry=1, 
    self=<optimized out>)
    at gmain.c:3146
#15 0x00000034f2847e12 in g_main_loop_run
    (loop=0x6d1d70)
    at gmain.c:3340
#16 0x0000003ac5979d65 in gtk_main
    ()
    at gtkmain.c:1161
#17 0x00000000004063fa in main
    (argc=1, argv=0x7fffffffdfc8)
    at daemon.c:391


As per [1], it is rather Gtk+ 3 bug as a root cause, though.

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=669883#15

Comment 3 Jan Pokorný [poki] 2012-07-19 17:25:54 UTC
This works for me:

# yum --enablerepo=updates-testing update gtk3

This will update gtk3-3.4.4-1.fc17 which works well immediatelly
after installation.

I guess it will be available by standard means soon [2].


[2] https://admin.fedoraproject.org/updates/FEDORA-2012-10722/gtk3-3.4.4-1.fc17

Comment 4 Jan Pokorný [poki] 2012-07-19 18:25:05 UTC
UPDATE: To cool down the optimism, even gtk3-3.4.4-1.fc17
        is problematic with notification-daemon.

I just got this message followed backtrace:

GLib-CRITICAL **: g_variant_get_boolean:
assertion `g_variant_is_of_type (value, G_VARIANT_TYPE_BOOLEAN)' failed

#0  g_logv
    (log_domain=0x34f28ac72e "GLib",
    log_level=G_LOG_LEVEL_CRITICAL,
    format=0x34f28b565a "%s: assertion `%s' failed",
    args1=args1@entry=0x7fffffffcd08)
    at gmessages.h:101
#1  0x00000034f284e9e2 in g_log
    (log_domain=log_domain@entry=0x34f28ac72e "GLib",
    log_level=log_level@entry=G_LOG_LEVEL_CRITICAL,
    format=format@entry=0x34f28b565a "%s: assertion `%s' failed")
    at gmessages.c:792
#2  0x00000034f284ea09 in g_return_if_fail_warning
    (log_domain=log_domain@entry=0x34f28ac72e "GLib", 
    pretty_function=pretty_function@entry=0x34f28fb5f0
        "g_variant_get_boolean",
    expression=expression@entry=0x34f28fa018 "g_variant_is_of_type
        (value, G_VARIANT_TYPE_BOOLEAN)")
    at gmessages.c:801
#3  0x00000034f2875dde in g_variant_get_boolean
    (value=<optimized out>)
    at gvariant.c:369
#4  g_variant_get_boolean
    (value=0x933e90)
    at gvariant.c:365
#5  0x0000000000406d2c in nd_notification_get_is_transient
    (notification=notification@entry=0x81c2a0 [NdNotification])
    at nd-notification.c:237
#6  0x000000000040ad42 in on_bubble_destroyed
    (bubble=<optimized out>,
    queue=0x6702b0 [NdQueue])
    at nd-queue.c:601
#7  0x00000034f440f664 in g_closure_invoke
    (closure=0x9fe110,
    return_value=return_value@entry=0x0,
    n_param_values=1, 
    param_values=param_values@entry=0x7fffffffcfe0,
    invocation_hint=invocation_hint@entry=0x7fffffffcf80)
    at gclosure.c:777
#8  0x00000034f44206d8 in signal_emit_unlocked_R
    (node=node@entry=0x624e20,
    detail=detail@entry=0, 
    instance=instance@entry=0x7cc050,
    emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7fffffffcfe0)
    at gsignal.c:3547
#9  0x00000034f442866d in g_signal_emit_valist
    (instance=0x7cc050,
    signal_id=<optimized out>,
    detail=0, 
    var_args=var_args@entry=0x7fffffffd228)
    at gsignal.c:3296
#10 0x00000034f44287c2 in g_signal_emit
    (instance=instance@entry=0x7cc050,
    signal_id=<optimized out>, 
    detail=detail@entry=0)
    at gsignal.c:3352
#11 0x00007ffff7c0ba7e in gtk_widget_dispose
    (object=0x7cc050 [NdBubble])
    at gtkwidget.c:10338
#12 0x00000034f44156d1 in g_object_run_dispose
    (object=0x7cc050 [NdBubble])
    at gobject.c:1061
#13 0x00000034f2844a3d in g_list_foreach
    (list=<optimized out>,
    list@entry=0x9f6340 = {...},
    func=0x4055a0 <gtk_widget_destroy@plt>,
    user_data=user_data@entry=0x0)
    at glist.c:900
#14 0x000000000040a9b0 in nd_stack_remove_all
    (stack=<optimized out>)
    at nd-stack.c:481
#15 0x000000000040b1b4 in clear_stacks
    (queue=queue@entry=0x6702b0 [NdQueue])
    at nd-queue.c:358
#16 0x000000000040b7c2 in show_dock
    (queue=0x6702b0 [NdQueue])
    at nd-queue.c:830
#17 0x00000034f440f943 in _g_closure_invoke_va
    (closure=closure@entry=0x648c90,
    return_value=return_value@entry=0x0, 
    instance=instance@entry=0x9e44a0,
    args=args@entry=0x7fffffffd6d8,
    n_params=0, param_types=0x0)
    at gclosure.c:840
#18 0x00000034f4427d88 in g_signal_emit_valist
    (instance=0x9e44a0,
    signal_id=<optimized out>,
    detail=0, 
    var_args=var_args@entry=0x7fffffffd6d8)
    at gsignal.c:3207
#19 0x00000034f44287c2 in g_signal_emit
    (instance=instance@entry=0x9e44a0,
    signal_id=<optimized out>, 
    detail=detail@entry=0)
    at gsignal.c:3352
#20 0x00007ffff7b59ace in emit_activate_signal
    (status_icon=0x9e44a0 [GtkStatusIcon])
    at gtkstatusicon.c:1277
#21 gtk_status_icon_button_press
    (status_icon=status_icon@entry=0x9e44a0 [GtkStatusIcon],
    event=0x9c4bb0)
    at gtkstatusicon.c:1628
#22 0x00007ffff7ad9ed9 in _gtk_marshal_BOOLEAN__BOXED
    (closure=0x9e2ba0,
    return_value=0x7fffffffd930, 
    n_param_values=<optimized out>,
    param_values=0x7fffffffd9e0,
    invocation_hint=<optimized out>, 
    marshal_data=<optimized out>)
    at gtkmarshalers.c:85
#23 0x00000034f440f664 in g_closure_invoke
    (closure=0x9e2ba0,
    return_value=return_value@entry=0x7fffffffd930, 
    n_param_values=2,
    param_values=param_values@entry=0x7fffffffd9e0,
    invocation_hint=invocation_hint@entry=
    0x7fffffffd980)
    at gclosure.c:777
#24 0x00000034f44206d8 in signal_emit_unlocked_R
    (node=node@entry=0x6307d0,
    detail=detail@entry=0, 
    instance=instance@entry=0x6d6410,
    emission_return=emission_return@entry=0x7fffffffdab0, 
    instance_and_params=instance_and_params@entry=0x7fffffffd9e0)
    at gsignal.c:3547
#25 0x00000034f44282a7 in g_signal_emit_valist
    (instance=0x6d6410,
    signal_id=<optimized out>,
    detail=0, 
    var_args=var_args@entry=0x7fffffffdc38)
    at gsignal.c:3306
#26 0x00000034f44287c2 in g_signal_emit
    (instance=instance@entry=0x6d6410,
    signal_id=<optimized out>, 
    detail=detail@entry=0)
    at gsignal.c:3352
#27 0x00007ffff7c0211e in gtk_widget_event_internal
    (widget=widget@entry=0x6d6410 [GtkTrayIcon],
    event=event@entry=0x9c4bb0)
    at gtkwidget.c:6380
#28 0x00007ffff7c02539 in gtk_widget_event
    (widget=widget@entry=0x6d6410 [GtkTrayIcon],
    event=event@entry=0x9c4bb0)
    at gtkwidget.c:6037
#29 0x00007ffff7ad7fa6 in propagate_event_up
    (topmost=<optimized out>,
    event=<optimized out>,
    widget=0x6d6410 [GtkTrayIcon])
    at gtkmain.c:2390
#30 propagate_event
    (widget=<optimized out>,
    event=0x9c4bb0,
    captured=<optimized out>,
    topmost=0x0)
    at gtkmain.c:2490
#31 0x00007ffff7ad9bb3
    in gtk_main_do_event
    (event=0x9c4bb0)
    at gtkmain.c:1713
#32 0x00007ffff772ae82 in gdk_event_source_dispatch
    (source=source@entry=0x643b50,
    callback=<optimized out>, 
    user_data=<optimized out>)
    at gdkeventsource.c:358
#33 0x00000034f28476e5 in g_main_dispatch
    (context=0x673bc0)
    at gmain.c:2539
#34 g_main_context_dispatch
    (context=context@entry=0x673bc0)
    at gmain.c:3075
#35 0x00000034f2847a18 in g_main_context_iterate
    (context=0x673bc0,
    block=block@entry=1,
    dispatch=dispatch@entry=1, 
    self=<optimized out>)
    at gmain.c:3146
#36 0x00000034f2847e12 in g_main_loop_run
    (loop=0x6d35a0)
    at gmain.c:3340
#37 0x00007ffff7ad8f75 in gtk_main
    ()
    at gtkmain.c:1161
#38 0x00000000004063fa in main
    (argc=1,
    argv=0x7fffffffe028)
    at daemon.c:391


Not sure about the root cause nor the component causing the issue.
Perhaps what is fixed in gtk3-3.4.4-1.fc17 unmasked, by not failing
immediatelly upon notify-send, completely another bug.

The reproducer I have for this is reliable, but unfortunately tightly
connected to a unique use case (notification about new irc messages).
Will try to come up with something more reasonable.

Comment 5 Jan Pokorný [poki] 2012-07-19 19:11:04 UTC
Please ignore the previous comment, the new issue turned out to be
instance of bug 822773, which I cloned for F17 as bug 841658.

Can anyone else confirm that gtk3-3.4.4-1.fc17 (which btw. got into
stable in the meantime) solves the original issue?
I think this bug can be closed as CURRENTRELEASE.

Comment 6 Renato Botelho 2012-07-19 19:52:47 UTC
I confirm the new gtk3 has fixed the issue on my environment.

Comment 7 Jan Pokorný [poki] 2012-08-10 14:05:59 UTC
Ok, looks like it can be closed (contacted the maintainer a week ago,
no reply).