Bug 227334 - x11/gnome-shell: Unable to start session: Oh no something has gone wrong
Summary: x11/gnome-shell: Unable to start session: Oh no something has gone wrong
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Some People
Assignee: freebsd-gnome mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-04-06 23:54 UTC by Wesley Moore
Modified: 2018-04-15 06:27 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (gnome)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wesley Moore 2018-04-06 23:54:51 UTC
I have been running GNOME3 on a desktop machine with an NVIDIA GTX 1050 GPU without issue since October last year. After recently doing a pkg upgrade I can no longer log in though.

GDM runs properly but when I log into a GNOME session I get the "Oh no something has gone wrong" message after about a minute of a grey screen. The mouse continues to work and I can click the Log Out button to return to GDM.

I think my X configuration is fine as I'm able to log into an Xfce session from gdm without issue (I'm writing this from that session).

The issue might be related to gnome-settings-daemon although this has not been updated recently.

There is at least one other person experiencing the same issue as reported on the forums:

https://forums.freebsd.org/threads/oh-no-something-has-gone-wrong-gnome3.60383/#post-383823

/etc/rc.conf:

clear_tmp_enable="YES"
syslogd_flags="-ss"
sendmail_enable="NONE"
hostname="wes-freebsd-box.localdomain"
ifconfig_em0="DHCP"
sshd_enable="YES"
ntpd_enable="YES"
powerd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
zfs_enable="YES"
devfs_system_ruleset="devfsrules_common"
dbus_enable="YES"
gnome_enable="YES"
jenkins_enable="YES"
vm_enable="NO"
vm_dir="zfs:zroot/vm"
pf_enable="NO"
dnsmasq_enable="NO"

/etc/X11/xorg.conf:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 384.59  (root@110amd64-default-job-06)  Fri Oct 20 12:38:32 UTC 2017

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/sysmouse"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "keyboard"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

/var/log/gdm/:1-greeter.log:

** (gnome-settings-daemon:8008): WARNING **: Ignoring unknown module 'org.gnome.settings-daemon.plugins.orientation'

(gnome-settings-daemon:8008): media-keys-plugin-WARNING **: Unable to inhibit keypresses: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.login1 was not provided by any .service files
Gjs-Message: JS LOG: No permission to trigger offline updates: Polkit.Error: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Gjs-Message: JS LOG: Could not get properties from org.freedesktop.locale1

(gnome-settings-daemon:8008): power-plugin-WARNING **: Unable to inhibit suspend: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.login1 was not provided by any .service files

(gnome-settings-daemon:8008): GLib-GIO-WARNING **: Error releasing name org.gnome.SettingsDaemon: The connection is closed
gnome-session-binary[7995]: WARNING: Lost name on bus: org.gnome.SessionManager

(gnome-settings-daemon:8008): GLib-GIO-WARNING **: Invalid id 4 passed to g_bus_unown_name()

(ibus-daemon:8019): GVFS-RemoteVolumeMonitor-WARNING **: Owner of volume monitor org.gtk.vfs.HalVolumeMonitor disconnected from the bus; removing drives/volumes/mounts

(ibus-daemon:8019): GVFS-RemoteVolumeMonitor-WARNING **: Owner of volume monitor org.gtk.vfs.GPhoto2VolumeMonitor disconnected from the bus; removing drives/volumes/mounts
Comment 1 Wesley Moore 2018-04-07 00:16:47 UTC
Forget to mention I'm running FreeBSD 11.1-RELEASE-p8 with packages installed from pkg+http://pkg0.nyi.FreeBSD.org/${ABI}/latest


Running startx with only gnome-session in ~/.xinitrc yields this log:

xauth:  file /home/wmoore/.serverauth.16892 does not exist


X.Org X Server 1.18.4
Release Date: 2016-07-19
X Protocol Version 11, Revision 0
Build Operating System: FreeBSD 11.1-RELEASE-p6 amd64 
Current Operating System: FreeBSD wes-freebsd-box.localdomain 11.1-RELEASE-p8 FreeBSD 11.1-RELEASE-p8 #0: Tue Mar 13 17:07:05 UTC 2018     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
Build Date: 14 December 2017  09:28:16AM
 
Current version of pixman: 0.34.0
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sat Apr  7 10:02:46 2018
(==) Using config file: "/etc/X11/xorg.conf"
gnome-session-binary[16909]: WARNING: Could not connect to ConsoleKit: Unable to lookup session information for process '16909'
gnome-session-binary[16909]: WARNING: Could not connect to ConsoleKit: Unable to lookup session information for process '16909'
gnome-session-binary[16909]: WARNING: Could not parse desktop file xscreensaver.desktop or it references a not found TryExec binary

** (gnome-settings-daemon:16922): WARNING **: Ignoring unknown module 'org.gnome.settings-daemon.plugins.orientation'
GNOME_KEYRING_CONTROL=/home/wmoore/.cache/keyring-LNCTGZ
GNOME_KEYRING_CONTROL=/home/wmoore/.cache/keyring-LNCTGZ
SSH_AUTH_SOCK=/home/wmoore/.cache/keyring-LNCTGZ/ssh

(gnome-settings-daemon:16922): media-keys-plugin-WARNING **: Unable to inhibit keypresses: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.login1 was not provided by any .service files

** (gnome-settings-daemon:16922): WARNING **: Unable to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
GNOME_KEYRING_CONTROL=/home/wmoore/.cache/keyring-LNCTGZ
SSH_AUTH_SOCK=/home/wmoore/.cache/keyring-LNCTGZ/ssh
W: [(null)] caps.c: Normally all extra capabilities would be dropped now, but that's impossible because PulseAudio was built without capabilities support.

(gnome-settings-daemon:16922): color-plugin-WARNING **: failed to obtain org.freedesktop.color-manager.create-profile auth
gnome-session-binary[16909]: WARNING: Application 'gnome-settings-daemon.desktop' failed to register before timeout
gnome-session-binary[16909]: WARNING: Could not connect to ConsoleKit: Unable to lookup session information for process '16909'

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
Gjs-Message: JS LOG: Failed to register AuthenticationAgent
Gjs-Message: JS LOG: No permission to trigger offline updates: Polkit.Error: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
current session already has an ibus-daemon.
Failed to play sound: File or data not found

(gnome-settings-daemon:16922): power-plugin-WARNING **: Unable to inhibit suspend: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.login1 was not provided by any .service files

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(tracker-miner-user-guides:16970): Tracker-WARNING **: Monitor backend:'GKqueueFileMonitor' is unknown, we have no limits in place because we don't know what we are dealing with!

(gnome-settings-daemon:16922): color-plugin-WARNING **: failed to create device: failed to obtain org.freedesktop.color-manager.create-device auth

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(gnome-session-failed:16949): Gtk-WARNING **: Allocating size to GtkBox 0x80cd1d190 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

(tracker-miner-apps:16978): Tracker-WARNING **: Monitor backend:'GKqueueFileMonitor' is unknown, we have no limits in place because we don't know what we are dealing with!

(tracker-miner-fs:16980): Tracker-WARNING **: Monitor backend:'GKqueueFileMonitor' is unknown, we have no limits in place because we don't know what we are dealing with!
(uint32 2,)
GNOME Shell started at Sat Apr 07 2018 10:04:20 GMT+1000 (AEST)

(tracker-miner-fs:16980): Tracker-WARNING **: The maximum number of monitors to set (100) has been reached, not adding any new ones
gnome-session-binary[16909]: WARNING: Could not connect to ConsoleKit: Unable to lookup session information for process '16909'
xinit: connection to X server lost

waiting for X server to shut down 
(ibus-daemon:16953): GVFS-RemoteVolumeMonitor-WARNING **: Owner of volume monitor org.gtk.vfs.HalVolumeMonitor disconnected from the bus; removing drives/volumes/mounts

(ibus-daemon:16953): GVFS-RemoteVolumeMonitor-WARNING **: Owner of volume monitor org.gtk.vfs.GPhoto2VolumeMonitor disconnected from the bus; removing drives/volumes/mounts
(II) Server terminated successfully (0). Closing log file.
Comment 2 Wesley Moore 2018-04-15 06:27:47 UTC
Further investigation shows that it appears to be some sort of race condition. I edited /usr/local/libexec/gnome-settings-daemon-localeexec and changed the exec line to use truss in order to try to trace where it was getting stuck:

truss -o /home/wmoore/Documents/gnome-settings-daemon-truss.out exec /usr/local/libexec/gnome-settings-daemon

However after that change the hang stopped, even with --failsafe removed from .xinitrc[1]. Suspecting the slight delay introduced by truss I then changed gnome-settings-daemon-localeexec to include a one second sleep and that seems to have the same effect:

Code:

sleep 1
exec /usr/local/libexec/gnome-settings-daemon

[1]: My .xinitrc looks like this:

exec gnome-session --debug > .xsession-errors 2>&1