Bug 12041

Summary: Bubble click callbacks are not fired
Product: Mageia Reporter: Colin Guthrie <mageia>
Component: RPM PackagesAssignee: Thierry Vignaud <thierry.vignaud>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Normal CC: mageia
Version: Cauldron   
Target Milestone: ---   
Hardware: i586   
OS: Linux   
Whiteboard:
Source RPM: libnotify, perl-Gtk3-Notify, mgaonline CVE:
Status comment:
Bug Depends on:    
Bug Blocks: 11778    
Attachments: WIP but glib/gtk create threads behind our back and segfault

Description Colin Guthrie 2013-12-18 18:27:56 CET
When an upgrade notification comes in the "Install Updates" action on the notification bubble does not fire trigger the attached event.

I'm not sure if this is a problem in perl-Gtk3-Notify or mgaoline's usage of it.



Reproducible: 

Steps to Reproduce:
Thierry Vignaud 2013-12-19 10:02:07 CET

Source RPM: mgaonline => libnotify, perl-Gtk3-Notify, mgaonline

Comment 1 Thierry Vignaud 2013-12-19 12:11:24 CET
Any message if you run mgaapplet from the command line?

Keywords: (none) => NEEDINFO

Comment 2 Colin Guthrie 2013-12-19 12:29:49 CET
Will have a look, but normally I just check "journalctl -f" as a user to see all error output from processes started in the user session and it's got nothing in it, so I suspect not.

One observation I did make is that perl-Gtk3-Notify package has no binary data in it unlike perl-Gtk2-Notify. As a slightly educated guess I'd say this is due to the gobject introspection that is possible in Gtk3 and thus the binary bit isn't needed... I got lost looking at the code from then on - perl is not my strong point as you know :)

Will let you know tho'.
Comment 3 Colin Guthrie 2013-12-20 10:45:40 CET
Yup, as suspected, there is no further output on the terminal if run manually. Testing under gnome, didn't try other desktops.
Comment 4 Thierry Vignaud 2013-12-20 23:37:37 CET
But how could have such notifications in cauldron?
We explicitely disable them on Cauldron...
Comment 5 Thierry Vignaud 2013-12-20 23:41:36 CET
I misread updates for upgrade
Thierry Vignaud 2013-12-21 00:08:45 CET

Status: NEW => ASSIGNED
Blocks: (none) => 11778
Keywords: NEEDINFO => (none)

Comment 6 Thierry Vignaud 2013-12-21 01:16:53 CET
Created attachment 4652 [details]
WIP but glib/gtk create threads behind our back and segfault
Comment 7 Thierry Vignaud 2013-12-21 02:10:58 CET
Which I've a fix for:
since we cannot prevent glib/gtk to spawn threads behind our back, we
can at least try to prevent segfaults due to mixing threads with secular
forks by exec()ing immediately
Comment 8 Thierry Vignaud 2013-12-21 02:32:19 CET
I though I'd a fix but even using run_program::get_stdout instead of `ip addr` in network::tools cause the segfault.
Once commented, mgaapplet no more crash.
I suspect this can explain quite some net_applet crashes too (same issue regarding libnotify and glib/gtk: those create threads and we mix fork()s with them...)

CC: (none) => mageia

Comment 9 Thierry Vignaud 2013-12-21 02:56:36 CET
Too bad https://developer.gnome.org/gio/unstable/GSubprocess.html will only be in next major version of glib
Comment 10 Mageia Robot 2013-12-21 03:11:41 CET
commit 67cbacd2c1cc61fcc8a4cb8ca2d567bebec7a814
Author: Thierry Vignaud <thierry.vignaud@...>
Date:   Sat Dec 21 03:09:24 2013 +0100

    prevent segfaulting b/c of fork vs threads (mga#12041)
    
    the issue is that glib/gtk create threads behind us
    however threads & fork() don't behave well when mixed...
---
 Commit Link:
   http://gitweb.mageia.org/software/drakx-net/commit/?id=67cbacd2c1cc61fcc8a4cb8ca2d567bebec7a814
Comment 11 Thierry Vignaud 2013-12-21 03:17:32 CET
Segfault fixed in drakx-net-2.6.
I suspect that I've closed quite a lot of the stange net_applet segfaults we saw along the years.

See https://bugzilla.redhat.com/show_bug.cgi?id=835112 & http://permalink.gmane.org/gmane.comp.bug-tracking.abrt.devel/2633 for another fork() vs hidden glib threads segfault.

I'll issue a new mgaonline too.
Comment 12 Thierry Vignaud 2013-12-21 03:20:31 CET
Fixed in git

Status: ASSIGNED => RESOLVED
Resolution: (none) => FIXED

Comment 13 Mageia Robot 2013-12-21 03:33:00 CET
commit 95b9cd06f14a9817090584d72830df870c591acc
Author: Thierry Vignaud <thierry.vignaud@...>
Date:   Sat Dec 21 03:17:55 2013 +0100

    fix doing nothing when clicking on notifications buttons (mga#12041)
---
 Commit Link:
   http://gitweb.mageia.org/software/mgaonline/commit/?id=95b9cd06f14a9817090584d72830df870c591acc
Comment 14 Colin Guthrie 2013-12-21 13:57:34 CET
Did you mean to do that "More Information2" thing in the above commit? Seems like it was just for testing...