Bug 736846

Summary: user switching with color manager enabled causes segfaults and gnome "Oh no..."
Product: [Fedora] Fedora Reporter: Jurgen Kramer <gtmkramer>
Component: gnome-color-managerAssignee: Richard Hughes <hughsient>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 16CC: hughsient, rhughes
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: 2011-11-15 12:26:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Attachments:
Description Flags
relavant dmesg output none

Description Jurgen Kramer 2011-09-08 20:50:48 UTC
Description of problem:
When testing fast user switching for the Fedora graphics testday I get segfaults.

Version-Release number of selected component (if applicable):
gnome-color-

How reproducible:
when switching users

Steps to Reproduce:
1. Loging with user1
2. Switch to user2
3.
  
Actual results:
When switching to user2 a get "Oh no! Something has gone wrong."

Expected results:
successful to user2

Additional info:
user1 has a color profile defined and loaded, user2 does not (just created for test day).

scenario1:
log in with user1 (with color profile). Everything ok.
switch to user2
"Oh no..."
Logout: back to working desktop of user1.
[  208.072819] gsettings-data-[2183]: segfault at 18 ip 00007fc8f256d252 sp 00007ffffd89f230 error 4 in libgio-2.0.so.0.2990.0[7fc8f24cc000+144000]
[  208.568917] gsettings-data-[2197]: segfault at 18 ip 00007fb31c1e0252 sp 00007fff2e09d870 error 4 in libgio-2.0.so.0.2990.0[7fb31c13f000+144000]
[  211.093913] gnome-settings-[2182]: segfault at 8 ip 00007fa9e5dcd62e sp 00007ffffd22abd0 error 4 in libcolor.so[7fa9e5dc4000+e000]
[  215.295664] gnome-settings-[2333]: segfault at 8 ip 00007faa3812662e sp 00007fff297af850 error 4 in libcolor.so[7faa3811d000+e000]

scenario2:
log in as user1 (no color profile)
switch to user2
working desktop for user2
switch to user1
black screen....have to reboot

Attached dmesg output with these proximate time marks:
logged in as user1 (with color profile)
22:39 switch user
22:40:23 login as user2
22:40:30 Oh noh message
22:40:41 logout, prompt to loging as user1

Comment 1 Jurgen Kramer 2011-09-08 20:51:29 UTC
Created attachment 522201 [details]
relavant dmesg output

Comment 2 Richard Hughes 2011-09-09 09:54:19 UTC
Can you get a backtrace please? You might have to use abrt to get it as I don't think there's a way of attaching to g-s-d as it's starting in another session. Thanks.

Comment 3 Jurgen Kramer 2011-09-09 10:40:37 UTC
Only these dumps are created:

Sep  9 12:33:44 develbox abrt[1477]: saved core dump of pid 1465 (/usr/bin/gsettings-data-convert) to /var/spool/abrt/ccpp-2011-09-09-12:33:43-1465.new/coredump (18022400 bytes)
Sep  9 12:33:44 develbox abrtd: Directory 'ccpp-2011-09-09-12:33:43-1465' creation detected
Sep  9 12:33:52 develbox abrtd: Dump directory is a duplicate of /var/spool/abrt/ccpp-2011-09-08-23:49:57-1469
Sep  9 12:33:52 develbox abrtd: Deleting dump directory ccpp-2011-09-09-12:33:43-1465 (dup of ccpp-2011-09-08-23:49:57-1469), sending dbus signal
Sep  9 12:35:25 develbox abrt[2148]: saved core dump of pid 2139 (/usr/bin/gsettings-data-convert) to /var/spool/abrt/ccpp-2011-09-09-12:35:25-2139.new/coredump (18018304 bytes)
Sep  9 12:35:25 develbox abrtd: Directory 'ccpp-2011-09-09-12:35:25-2139' creation detected
Sep  9 12:35:26 develbox abrtd: Dump directory is a duplicate of /var/spool/abrt/ccpp-2011-09-08-21:55:32-2616
Sep  9 12:35:26 develbox abrtd: Deleting dump directory ccpp-2011-09-09-12:35:25-2139 (dup of ccpp-2011-09-08-21:55:32-2616), sending dbus signal
Sep  9 12:35:29 develbox abrt[2224]: saved core dump of pid 2137 (/usr/libexec/gnome-settings-daemon) to /var/spool/abrt/ccpp-2011-09-09-12:35:28-2137.new/coredump (55009280 bytes)
Sep  9 12:35:29 develbox abrtd: Directory 'ccpp-2011-09-09-12:35:28-2137' creation detected
Sep  9 12:35:29 develbox abrtd: Corrupted or bad dump /var/spool/abrt/ccpp-2011-09-09-12:35:28-2137 (res:2), deleting
Sep  9 12:37:00 develbox abrt[2417]: saved core dump of pid 1534 (/usr/bin/gnome-screensaver) to /var/spool/abrt/ccpp-2011-09-09-12:37:00-1534.new/coredump (20787200 bytes)
Sep  9 12:37:00 develbox abrtd: Directory 'ccpp-2011-09-09-12:37:00-1534' creation detected
Sep  9 12:37:00 develbox abrtd: Corrupted or bad dump /var/spool/abrt/ccpp-2011-09-09-12:37:00-1534 (res:2), deleting

Which one should be the one?

Comment 4 Jurgen Kramer 2011-09-09 11:52:41 UTC
It seems I cannot get a proper dump for g-s-d:

Sep  9 13:45:08 develbox abrt[3374]: saved core dump of pid 3306 (/usr/libexec/gnome-settings-daemon) to /var/spool/abrt/ccpp-2011-09-09-13:45:07-3306.new/coredump (54996992 bytes)
Sep  9 13:45:08 develbox abrtd: Directory 'ccpp-2011-09-09-13:45:07-3306' creation detected
Sep  9 13:45:08 develbox abrtd: Package 'gnome-settings-daemon' isn't signed with proper key
Sep  9 13:45:08 develbox gnome-session[3154]: WARNING: Application 'gnome-settings-daemon.desktop' killed by signal
Sep  9 13:45:08 develbox abrtd: Corrupted or bad dump /var/spool/abrt/ccpp-2011-09-09-13:45:07-3306 (res:2), deleting

Sep  9 13:51:48 develbox kernel: [  136.662654] gnome-settings-[2209]: segfault at 8 ip 00007f11cc1e962e sp 00007fff3eb3a7f0 error 4 in libcolor.so[7f11cc1e0000+e000]
Sep  9 13:51:48 develbox abrt[2244]: not dumping repeating crash in '/usr/libexec/gnome-settings-daemon'
Sep  9 13:51:48 develbox gnome-session[1902]: WARNING: App 'gnome-settings-daemon.desktop' respawning too quickly

Comment 5 Jurgen Kramer 2011-09-09 12:02:26 UTC
when I remove the color profile for user1 I can switch to user2 without getting the "Oh no...".

As soon as I activate the same color profile for user2 I get "Oh no.." and I am thrown back to user1.

Comment 6 Jurgen Kramer 2011-09-09 12:17:32 UTC
OK, I found the problem. When user1 adds a color profile from his/her local home directory user2 has no access to this profile. Even when user2 has the same profile in her/his directory it does not work. 
The only thing that makes it work is putting the profile in /usr/share/color/icc. Then is works for both users.

imho there are two solutions to this problem:

1. when I user adds a profile it is put in /usr/share/color/icc so other users use it automatically
2. Each user has it own color settings, if one users add a profile it does not affect the settings of other users.

I think it should be solution 2 and my guess is that it was intended that way :)

Comment 7 Richard Hughes 2011-09-09 13:38:21 UTC
(In reply to comment #6)
> 2. Each user has it own color settings, if one users add a profile it does not
> affect the settings of other users.

This is what's supposed to happen. I'm debugging this now, thanks.

Comment 8 Richard Hughes 2011-09-09 13:54:24 UTC
I've applied this upstream:

commit e24d4df228e07f89598017c89e3102c80e761dfd
Author: Richard Hughes <richard@hughsie.com>
Date:   Fri Sep 9 14:52:07 2011 +0100

    color: Do not segfault when doing fast-user-switching into a new account
    
    This prevents the crash, but we need to look at the correct behavior for FUS
    and when to apply the color profile for the new user.
    
    Resolves https://bugzilla.redhat.com/show_bug.cgi?id=736846

I'll think about how we can do FUS in a sane way tonight.

Comment 9 Richard Hughes 2011-09-09 15:49:54 UTC
commit e2e05f1966c67c54cc8b191698776fc11f107227
Author: Richard Hughes <richard@hughsie.com>
Date:   Fri Sep 9 16:44:52 2011 +0100

    color: Use a username suffix on the profile ID
    
    This allows fast user switching to work correctly when both sessions want to
    use the same profile and the profile is not set system-wide.
    
    This properly fixes https://bugzilla.redhat.com/show_bug.cgi?id=736846

Comment 10 Jurgen Kramer 2011-10-07 18:29:01 UTC
Retested with F16Beta with today's updates
gnome-color-manager-3.2.0-3

Scenario:
user1, added color profile from home dir, gets added to ~/.local/share/icc/

switch to user2
no crash :)

check color settings. The same profile (seems to be) is active as for user1 although it is not installed for user2. Is this the intended behaviour?

When I switch to another color profile for user2 nothing happens.

switch back to user1

switching color profiles works.

switch back to user2

black screen, after doing a ctrl-alt-f1 (to get a terminal to see what is happening) I got thrown back to password lock screen for user1.

Comment 11 Richard Hughes 2011-10-10 11:11:18 UTC
(In reply to comment #10)
> Retested with F16Beta with today's updates
> gnome-color-manager-3.2.0-3

You need gnome-settings-daemon 3.2.0 or newer.

Richard.

Comment 12 Jurgen Kramer 2011-10-10 16:52:54 UTC
gnome-settings-daemon-3.2.0-1 was installed during testing.

When I change the color profile for user2 is does not have any effect. When I switch to user1 this color profile is set for him/her as well but here it works.

Comment 13 Richard Hughes 2011-11-15 12:26:46 UTC
This works for me now using the latest F16 packages.