Bug 601241 - [abrt] gnome-panel-2.28.0-21.el6: na_tray_set_padding: Process /usr/libexec/notification-area-applet was killed by signal 11 (SIGSEGV)
[abrt] gnome-panel-2.28.0-21.el6: na_tray_set_padding: Process /usr/libexec/n...
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: gnome-panel (Show other bugs)
6.0
i686 Linux
low Severity medium
: rc
: ---
Assigned To: Ray Strode [halfline]
desktop-bugs@redhat.com
abrt_hash:d5a6d1b5a0e56d8ed0bf37d1ed8...
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-06-07 10:31 EDT by Mauro Carvalho Chehab
Modified: 2013-07-04 18:55 EDT (History)
6 users (show)

See Also:
Fixed In Version: gnome-panel-2.28.0-24.el6
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-11-15 08:58:34 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
File: backtrace (10.09 KB, text/plain)
2010-06-07 10:31 EDT, Mauro Carvalho Chehab
no flags Details
Xorg.conf i used (1.03 KB, application/octet-stream)
2010-06-14 15:21 EDT, Ray Strode [halfline]
no flags Details

  None (edit)
Description Mauro Carvalho Chehab 2010-06-07 10:31:36 EDT
abrt version: 1.1.4
architecture: i686
Attached file: backtrace
cmdline: /usr/libexec/notification-area-applet --oaf-activate-iid=OAFIID:GNOME_NotificationAreaApplet_Factory --oaf-ior-fd=38
component: gnome-panel
crash_function: na_tray_set_padding
executable: /usr/libexec/notification-area-applet
global_uuid: d5a6d1b5a0e56d8ed0bf37d1ed8ced7d140a60e7
kernel: 2.6.32-30.el6.test.i686
package: gnome-panel-2.28.0-21.el6
rating: 4
reason: Process /usr/libexec/notification-area-applet was killed by signal 11 (SIGSEGV)
release: Red Hat Enterprise Linux release 6.0 Beta (Santiago)

How to reproduce
-----
I'm using two nvidia video cards, nouveau driver, the first one with 2 monitors (1650x1050 + 1920x1080) and the 
second one at  1280x1024. As Xinerama is not working on this environment (bug #596559), each video adapter has
its own gnome environment running on it. However, the notification applet, at the top panel on the second gnome
environment were not working. So, I've removed the panel, re-created and re-added the applet. Every time I tried to
re-add the notification applet, it unexpectely dies. After re-starting X, I got this reported crash.
Comment 1 Mauro Carvalho Chehab 2010-06-07 10:31:39 EDT
Created attachment 421843 [details]
File: backtrace
Comment 3 RHEL Product and Program Management 2010-06-07 10:53:16 EDT
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.
Comment 4 Matthias Clasen 2010-06-11 20:05:41 EDT
I'm not sure I fully understand your hardware setup. 
Is there one X server involved, or two ?
Comment 5 Matthias Clasen 2010-06-11 20:13:57 EDT
From looking at the code, my initial guess is that we do


 g_object_set_data_full (G_OBJECT (applet),
                          "system-tray-data",
                          data,
                          (GDestroyNotify) free_applet_data);


and 


  gconf_client_notify_add (client, key, padding_changed, data, NULL, NULL);


but it looks like we never remove the gconf notify. So if the applet gets destroyed for whatever reason, and we then get a gconf notify, the data passed to the padding_changed callback will have been freed by free_applet_data.
Comment 6 Mauro Carvalho Chehab 2010-06-11 22:29:24 EDT
(In reply to comment #4)
> I'm not sure I fully understand your hardware setup. 
> Is there one X server involved, or two ?    

There's only one X server involved, but it opens two Screens: the first one 
has a Virtual Desktop size of 3600x1080:

Screen 0: minimum 320 x 200, current 3600 x 1080, maximum 8192 x 8192
DVI-I-1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
   1680x1050      60.0*+
   1280x1024      75.0     60.0  
   1440x900       75.0     59.9  
   1280x960       60.0  
   1360x765       59.8  
   1152x864       75.0  
   1280x720       60.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  
DVI-I-2 connected 1920x1080+1680+0 (normal left inverted right x axis y axis) 1280mm x 720mm
   1920x1080      60.0*+   50.0     24.0  
   1280x1024      60.0  
   1360x768       60.0  
   1024x768       60.0  
   800x600        60.3  
   640x480        60.0 

The second one has a virtual size of 1280x1024:

Screen 1: minimum 320 x 200, current 1280 x 1024, maximum 8192 x 8192
DVI-I-3 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
   1280x1024      60.0*+   75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  
DVI-I-4 disconnected (normal left inverted right x axis y axis

Since Xinerama is disabled, each screen behaves like an independent gnome desktop, with their own panels and notification bar.

The reported error happened at the notification bar that should be showing at
"Screen 1".
Comment 7 Matthias Clasen 2010-06-14 11:10:21 EDT
One other idea: 

The update_size_and_orientation function does a similar   

if (get_tray (priv->trays_screen) == tray)
    na_tray_manager_set_orientation (priv->trays_screen->tray_manager,
                                     priv->orientation);

but it has a 

  /* This only happens when setting the property during object construction */
  if (!priv->trays_screen)
    return;

right before it.

Maybe na_tray_set_padding needs that as well ?
Comment 8 Ray Strode [halfline] 2010-06-14 14:40:41 EDT
I've reproduced this issue and developed a potential fix. devack+
Comment 9 Ray Strode [halfline] 2010-06-14 15:21:41 EDT
Created attachment 423961 [details]
Xorg.conf i used

Testing this can be a little tricky, so here are some details:

1) You need a multi-screen setup.  This may involve having two different video cards, or one card with dual outputs.  Either way you'll need an xorg.conf file. Running Xorg -configure as root will generate the start of an xorg.conf file, but it will need to be modified to do multi-screen instead of more typical multi-head setups.  I've attached the xorg.conf I used during testing for reference.  Some of the details like which driver to use will depend on the test hardware.  This particular machine uses a dual head r580 card.

When trying to get this setup, it's probably best to work from runlevel 3 (by typing init 3) and then running startx.  Getting a functioning multi-screen setup is probably the trickiest part of testing this bug.  You'll know it's multi-screen and not a more typical multi-head setup if windows created on one monitor can't be dragged to the other monitor.

2) After getting startx to produce a multi-head setup, then right click on the top panel of the secondary monitor, and choose "Delete this panel"
3) Right click on a blank area of the bottom panel on that same monitor and choose "New Panel"
4) Right click anywhere on the newly created blank top panel and choose "Add to panel"
5) Scroll down to "Notification Area" and click "Add"

At this point it should crash with the old packages and not with the new.
Comment 11 Ray Strode [halfline] 2010-06-14 16:35:28 EDT
Should be all set in gnome-panel-2.28.0-24.el6
Comment 15 Vladimir Benes 2010-08-26 08:38:11 EDT
Verified by non-QE member (Mauro Chehab).. setting Verified flag to Customer

thanks,
Vladimir
Comment 16 releng-rhel@redhat.com 2010-11-15 08:58:34 EST
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.

Note You need to log in before you can comment on or make changes to this bug.