| Summary: | net_applet segfaults when connect to internet via right click (b/c libnotify/glib2.0 created a thread) | ||
|---|---|---|---|
| Product: | Mageia | Reporter: | Kiki Syahadat <kiki.syahadat> |
| Component: | RPM Packages | Assignee: | Thierry Vignaud <thierry.vignaud> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | critical | ||
| Priority: | High | CC: | asw, detlefschmidt, jeanluc.szewczyk, loginov_alex, mageia, mageia, olav, pmdenielou, thierry.vignaud |
| Version: | Cauldron | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| See Also: | https://bugzilla.redhat.com/show_bug.cgi?id=835112 | ||
| Whiteboard: | |||
| Source RPM: | drakx-net, Gtk2::Queue, perl-Gtk2-Notify, libnotify, glib2.0 | CVE: | |
| Status comment: | |||
| Bug Depends on: | 10289 | ||
| Bug Blocks: | |||
| Attachments: |
GDB trace with symbols
thread creation trace: notify_notification_show() -> _notify_get_proxy() |
||
|
Description
Kiki Syahadat
2013-02-18 13:00:38 CET
works for me. What desktop are you using (GNOME3, GNOME Classic, KDE, ...)? Is the net_applet processus still there after? If not, can you start net_applet from a terminal, then redo your procedure then report back any error message here. Keywords:
(none) =>
NEEDINFO
Thierry Vignaud
2013-02-19 21:03:56 CET
Keywords:
NEEDINFO =>
(none) Created attachment 3531 [details]
GDB trace with symbols
actually it's segfaulting (and I've already seen that trace in others BR)
Thierry Vignaud
2013-02-19 21:07:58 CET
Priority:
Normal =>
release_blocker I am using KDE Prosses' gone after right click. When I started from terminal then redo prosses it said segfault. Sorry if someone has reported this bug. Multiple reports are fine, we got more info this way such as a way to reproduce. Any idea on this Thierry? Can I assign this bug to you? CC:
(none) =>
pierre-malo.denielou
Malo Deniélou
2013-03-26 22:54:13 CET
Status:
NEW =>
ASSIGNED it segfaults in the CHLD signal handler. Commenting it out fixes it. strange thing is that it has two threads and it dies in the other thread. Blino, does that ring something to you? CC:
(none) =>
mageia Once we (un)connect once, it has two threads. it's hard to debug as under strace, the ifup commands do not happen And the winner is
Not running this fixes it:
$notification_queue->add({
title => $old_description || $current_description || N("Network connection"),
pixbuf => network::net_applet::get_state_pixbuf(),
message => get_state_message($old_interface || $current_interface),
}) if $show;
reduced to this line in ugtk2:
eval { $notification->show };
Before we have one thread, after two threads
@blino: Giving that Gtk2::Notify isn't maintained since 2007, what about throwing those out?
Might be the fc patch on perl-Gtk2-Notify or libnotifySource RPM:
drakx-net-1.18-1.mga3 =>
drakx-net-1.18-1.mga3, Gtk2::Queue, perl-Gtk2-Notify, libnotify Created attachment 3664 [details]
thread creation trace: notify_notification_show() -> _notify_get_proxy()
This affects other people too: https://bugzilla.redhat.com/show_bug.cgi?id=835112 => http://permalink.gmane.org/gmane.comp.bug-tracking.abrt.devel/2633
Thierry Vignaud
2013-03-28 07:03:54 CET
Summary:
net_applet segfaults when connect to internet via right click =>
net_applet segfaults when connect to internet via right click (b/c libnotify/glib2.0 created a thread)
Thierry Vignaud
2013-03-28 07:14:48 CET
CC:
(none) =>
olav ccing dbug & glib maintainers who may know why a thread is created for a syncrhonous operation? or may know how to prevent glib to spawn threads? CC:
(none) =>
mageia Or maybe should we explicitely create a perl thread prior to loading/initializing gtk+2, and do all the notifications from this thread, thus needing some dialog API between the two threads. libnotify sucks :-( or fork() rather than threads. Or if as action is used, forking notify-send instead. what's strange is that we do not got such errors on mgaapplet though we've got some strange segfaults. and mgaapplet also has 2 threads once a bubble has been shown... For now, it's workarounded (not fixed) in drakxtools-15.31: we no more display those notification bubbles. But the root issue remains Doing initialisation before forking or in random threads is a really bad idea generally. It would likely be far easier to simply implement things by sending direct dbus messages in perl... Not that I'm volunteering :D well libnotify is supposed to do that job for the apps. Synchronously. Without glib creating a thread behind. I think I'll try rebuild libnotify6, link perl-Gtk2-Notify with it, reenable notification bubbles in order to see if it fixes it. Anyway we'll have to report this upstream. They've broken 8 years working code... No more release critical as it's "workarounded" Priority:
release_blocker =>
High net_applet segfaults in Mageia 3. Users haves many problems with Internet connection via net_applet. CC:
(none) =>
loginov_alex bug #10078 has nothing to do with that one [gaurii@localhost ~]$ gdb -q --args perl /usr/bin/net_applet Reading symbols from /usr/bin/perl...Reading symbols from /usr/lib/debug/usr/bin/perl5.16.3.debug...done. done. (gdb) run Starting program: /usr/bin/perl /usr/bin/net_applet [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". warning: the debug information found in "/usr/lib/debug/usr/lib64/libfreetype.so.6.10.0.debug" does not match "/lib64/libfreetype.so.6" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib64/libfreetype.so.6.10.0.debug" does not match "/lib64/libfreetype.so.6" (CRC mismatch). warning: the debug information found in "/usr/lib/debug/usr/lib64//libfreetype.so.6.10.0.debug" does not match "/lib64/libfreetype.so.6" (CRC mismatch). Detaching after fork from child process 7508. Detaching after fork from child process 7510. Detaching after fork from child process 7511. [New Thread 0x7fffe7217700 (LWP 7512)] Detaching after fork from child process 7513. Detaching after fork from child process 7514. Detaching after fork from child process 7515. Detaching after fork from child process 7516. Cannot open /dev/input/eventX: ÐÑказано в доÑÑÑпе Cannot open /dev/input/eventX: ÐÑказано в доÑÑÑпе Cannot open /dev/input/eventX: ÐÑказано в доÑÑÑпе Cannot open /dev/input/eventX: ÐÑказано в доÑÑÑпе Detaching after fork from child process 7517. Detaching after fork from child process 7518. Detaching after fork from child process 7519. Detaching after fork from child process 7520. Detaching after fork from child process 7521. Detaching after fork from child process 7522. Detaching after fork from child process 7523. Detaching after fork from child process 7524. Detaching after fork from child process 7525. Detaching after fork from child process 7526. Detaching after fork from child process 7527. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffe7217700 (LWP 7512)] Perl_csighandler (sig=17, sip=<optimized out>, uap=<optimized out>) at mg.c:1381 1381 (sig == SIGSEGV || (PL_signals & PERL_SIGNALS_UNSAFE_FLAG))) Missing separate debuginfos, use: debuginfo-install lib64freetype6-2.4.11-2.mga3.x86_64 (gdb)
Detlef Schmidt
2013-07-01 14:18:05 CEST
CC:
(none) =>
detlefschmidt When you right click on net_applet on tray then click on active_interface t, net_applet suddenly disappear. Version-Release number of selected component (if applicable): drakx-net-applet-1.24-1.mga3 How reproducible: Steps to Reproduce: 1. right click on net_applet icon on tray 2. click active_interface ... CC:
(none) =>
asw Doesn't happen anymore since switching to gtk3 Status:
ASSIGNED =>
RESOLVED |