Bug 601241

Summary: [abrt] gnome-panel-2.28.0-21.el6: na_tray_set_padding: Process /usr/libexec/notification-area-applet was killed by signal 11 (SIGSEGV)
Product: Red Hat Enterprise Linux 6 Reporter: Mauro Carvalho Chehab <mchehab>
Component: gnome-panelAssignee: Ray Strode [halfline] <rstrode>
Status: CLOSED CURRENTRELEASE QA Contact: desktop-bugs <desktop-bugs>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: borgan, lwang, mclasen, notting, tpelka, vbenes
Target Milestone: rc   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard: abrt_hash:d5a6d1b5a0e56d8ed0bf37d1ed8ced7d140a60e7
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 13:58:34 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Description Flags
File: backtrace
Xorg.conf i used none

Description Mauro Carvalho Chehab 2010-06-07 14:31:36 UTC
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 14:31:39 UTC
Created attachment 421843 [details]
File: backtrace

Comment 3 RHEL Product and Program Management 2010-06-07 14:53:16 UTC
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

Comment 4 Matthias Clasen 2010-06-12 00:05:41 UTC
I'm not sure I fully understand your hardware setup. 
Is there one X server involved, or two ?

Comment 5 Matthias Clasen 2010-06-12 00:13:57 UTC
From looking at the code, my initial guess is that we do

 g_object_set_data_full (G_OBJECT (applet),
                          (GDestroyNotify) free_applet_data);


  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-12 02:29:24 UTC
(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 15:10:21 UTC
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,

but it has a 

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

right before it.

Maybe na_tray_set_padding needs that as well ?

Comment 8 Ray Strode [halfline] 2010-06-14 18:40:41 UTC
I've reproduced this issue and developed a potential fix. devack+

Comment 9 Ray Strode [halfline] 2010-06-14 19:21:41 UTC
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 20:35:28 UTC
Should be all set in gnome-panel-2.28.0-24.el6

Comment 15 Vladimir Benes 2010-08-26 12:38:11 UTC
Verified by non-QE member (Mauro Chehab).. setting Verified flag to Customer


Comment 16 releng-rhel@redhat.com 2010-11-15 13:58:34 UTC
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.