Bug 1017478

Summary: TW20161223 - Graphical login broken after update (sddm)
Product: [openSUSE] openSUSE Tumbleweed Reporter: Axel Braun <axel.braun>
Component: KDE Workspace (Plasma)Assignee: E-Mail List <opensuse-kde-bugs>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: alarrosa, axel.braun, forgotten_Uhai_dsUiI, lbeltrame, os-dev, rickscafe.casablanca, tkoenig, tkoenig
Version: CurrentFlags: lbeltrame: needinfo? (axel.braun)
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: /etc/sddm.conf
last journalctl entries

Description Axel Braun 2016-12-29 07:40:22 UTC
(following up on mailing from factory mailing list)
after an update of Tumbleweed (zypper dup) on 23.12.2016 on a Dell D630 laptop the boot got stuck with a black screen.
After booting into runlevel 3, startx died with the following messages:

[   160.896] _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
[   160.896] _XSERVTransMakeAllCOTSServerListeners: server already running
[   160.896] (EE) 
Fatal server error:
[   160.896] (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) 
[   160.896] (EE) 
Please consult the The X.Org Foundation support 
         at http://wiki.x.org
 for help. 
[   160.896] (EE) Please also check the log file at "/home/user1/.local/share/xorg/Xorg.0.log" for additional information.
[   160.897] (EE) 
[   160.897] (EE) Server terminated with error (1). Closing log file.
-------------------------------------------------------------------------------------------
xinit failed. /usr/bin/Xorg is not setuid, maybe that's the reason?
If so either use a display manager (strongly recommended) or adjust /etc/permissions.local and run "chkstat --system --set" afterwards

(this is actually the output of Xorg.0.log)

After changing the Display manager from sddm to kdm the server started as expected. 
So this seems to be a sddm-issue. It is reproducible - changing back to sddm breaks it again. 
Seems that sddm is broken? How can I prevent the change to sddm during the next update?
Comment 1 Stefan Dirsch 2017-01-02 14:39:00 UTC
So it's obviously sddm related. Reassigning ...
Comment 2 Luca Beltrame 2017-04-17 08:27:57 UTC
You can't run startx directly anymore, IIRC. But aside that, would you be able to provide logs from SDDM when it is started up (journalctl -u display-manager.service)? Are you still able to switch to virtual consoles?
Comment 3 Luca Beltrame 2017-04-17 08:28:33 UTC
(In reply to Luca Beltrame from comment #2)
> You can't run startx directly anymore, IIRC. But aside that, would you be
> able to provide logs from SDDM when it is started up (journalctl -u
> display-manager.service)? Are you still able to switch to virtual consoles?

Sorry, I meant "journalctl -b -u sddm.service" (after a reboot), or it'll get you *all* the logs ever recorded...
Comment 4 Antonio Larrosa 2017-04-19 08:16:26 UTC
Also, in addition to what Luca said, can you check in your /etc/sddm.conf file what's the value of the current theme? It should be something like:

[Theme]
Current=breeze

You can check in /usr/share/sddm/themes/ that you have that theme installed correctly.

Also, can you run the next command from any terminal in a desktop?

sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze

And tell us if it opens sddm windows correctly? If not, can you send us the output it printed in your terminal?
Comment 5 Thomas König 2017-04-21 09:00:24 UTC
Created attachment 722092 [details]
/etc/sddm.conf

Same problem here.

Replacing sddm with kdm in /etc/sysconfig/displaymanager at least got
me a graphical login.  It did not provide me with a window manager, though.
Comment 6 Thomas König 2017-04-21 09:09:48 UTC
Created attachment 722095 [details]
last journalctl entries

Here are the last journalctl entries from my system.
What looks suspicious are the entries reading, approximately,
"Cannot create children for a parent in a different thread"
from sddm-greeter.
Comment 7 Thomas König 2017-04-21 09:11:27 UTC
Actually, the problem may be a bit different. What happens here
is that the login screen appears for about a second, then disappears
for the same amount of time, then appears, etc, in an apparently
endless loop.
Comment 8 Antonio Larrosa 2017-04-21 10:25:23 UTC
Thomas, thanks for the information. Indeed, they might be different problems. Can you try changing the theme in /etc/sddm.conf from Current=breeze-openSUSE to Current=breeze ? 

Also, can you run try the next command and check if the greeter opens fine in a regular window? 

sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE

Also, are you using the latest sddm-theme-openSUSE and sddm packages available in Tumbleweed?
Comment 9 Thomas König 2017-04-21 11:25:12 UTC
(In reply to Antonio Larrosa from comment #8)
> Thomas, thanks for the information. Indeed, they might be different
> problems. Can you try changing the theme in /etc/sddm.conf from
> Current=breeze-openSUSE to Current=breeze ? 

This brought no change, except that the login screen was light blue
instead of the usual SUSE design.

> Also, can you run try the next command and check if the greeter opens fine
> in a regular window? 
> 
> sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE

It did work as expected (showed a login screen).

Here's the output:

[13:21:49.231] (II) GREETER: High-DPI autoscaling Enabled
[13:21:49.273] (II) GREETER: Reading from "/usr/share/xsessions/icewm-session.desktop"
[13:21:49.273] (II) GREETER: Reading from "/usr/share/xsessions/icewm.desktop"
[13:21:49.273] (II) GREETER: Reading from "/usr/share/xsessions/kde-plasma.desktop"
[13:21:49.273] (II) GREETER: Reading from "/usr/share/xsessions/plasma5.desktop"
[13:21:49.273] (WW) GREETER: inotify_add_watch("/usr/share/wayland-sessions") failed: "No such file or directory"
[13:21:49.274] (EE) GREETER: Socket error:  "QLocalSocket::connectToServer: Invalid name"
[13:21:49.394] (II) GREETER: Loading file:///usr/share/sddm/themes/breeze-openSUSE/Main.qml...
[13:21:49.906] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread.
(Parent is SDDM::GreeterApp(0x7ffcac6b3950), parent's thread is QThread(0xe970d0), current thread is QThread(0xf29450)
[13:21:49.907] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread.
(Parent is SDDM::GreeterApp(0x7ffcac6b3950), parent's thread is QThread(0xe970d0), current thread is QThread(0xf29450)
[13:21:49.907] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread.
(Parent is SDDM::GreeterApp(0x7ffcac6b3950), parent's thread is QThread(0xe970d0), current thread is QThread(0xf29450)
[13:21:49.907] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread.
(Parent is SDDM::GreeterApp(0x7ffcac6b3950), parent's thread is QThread(0xe970d0), current thread is QThread(0xf29450)
[13:21:49.907] (WW) GREETER: QObject::installEventFilter(): Cannot filter events for objects in a different thread.
[13:21:49.907] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread.
(Parent is SDDM::GreeterApp(0x7ffcac6b3950), parent's thread is QThread(0xe970d0), current thread is QThread(0xf29450)
[13:21:50.775] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread.
(Parent is SDDM::GreeterApp(0x7ffcac6b3950), parent's thread is QThread(0xe970d0), current thread is QThread(0xf29450)
[13:21:50.775] (WW) GREETER: QObject::installEventFilter(): Cannot filter events for objects in a different thread.
[13:21:52.658] (II) GREETER: Adding view for "VGA-1" QRect(0,0 1920x1080)
[13:21:52.663] (WW) GREETER: QDBusConnection: name 'org.freedesktop.UDisks2' had owner '' but we thought it was ':1.27'
[13:22:02.128] (II) GREETER: Reading from "/usr/share/xsessions/plasma5.desktop"
[13:22:02.128] (WW) GREETER: QIODevice::write (QLocalSocket): device not open
[13:22:06.929] (II) GREETER: Reading from "/usr/share/xsessions/plasma5.desktop"
[13:22:06.929] (WW) GREETER: QIODevice::write (QLocalSocket): device not open
[13:22:10.703] (II) GREETER: Reading from "/usr/share/xsessions/plasma5.desktop"
[13:22:10.703] (WW) GREETER: QIODevice::write (QLocalSocket): device not open

 
> Also, are you using the latest sddm-theme-openSUSE and sddm packages
> available in Tumbleweed?

Yes, as of 2017-04-21 (today) in the morning.  The first thing I tried
when the problem occurred was updating.
Comment 10 Thomas König 2017-04-21 18:09:49 UTC
Rolling back to 2017-04-18 solved the issue for me.

I'll wait a bit before the next update :-)
Comment 11 Mark Draheim 2017-04-22 19:32:25 UTC
I have this problem on all my computers with nouveau but not on my laptops with intel. The sddm test only shows ABORTED. Autologin loops endlessly.
Comment 12 Stefan Dirsch 2017-04-23 09:20:42 UTC
*** Bug 1035341 has been marked as a duplicate of this bug. ***
Comment 13 Mark Draheim 2017-04-23 11:52:45 UTC
there is not much to see in the logs. Xorg.0.log just ends with

[    64.121] (EE) 
[    64.121] (EE) Backtrace:

and then it is replaced by the new one when sddm tries again to start X.

Main journal just notes that X has died

Apr 23 12:45:37 pc7 sddm-greeter[1731]: Adding view for "LVDS-1" QRect(0,0 1920x1080)
Apr 23 12:45:37 pc7 sddm-greeter[1731]: QDBusConnection: name 'org.freedesktop.UDisks2
Apr 23 12:45:37 pc7 sddm-greeter[1731]: Message received from daemon: Capabilities
Apr 23 12:45:37 pc7 sddm-greeter[1731]: Message received from daemon: HostName
Apr 23 12:45:37 pc7 systemd[1]: Created slice system-systemd\x2dcoredump.slice.
Apr 23 12:45:37 pc7 systemd[1]: Started Process Core Dump (PID 1765/UID 0).
Apr 23 12:45:38 pc7 sddm-greeter[1731]: The X11 connection broke: I/O error (code 1)
Apr 23 12:45:38 pc7 sddm[1622]: Display server stopped.
Apr 23 12:45:38 pc7 sddm[1622]: Running display stop script  "/usr/share/sddm/scripts/
Apr 23 12:45:38 pc7 sddm[1622]: Greeter stopping...
Apr 23 12:45:38 pc7 sddm[1622]: Socket server stopping...
Apr 23 12:45:38 pc7 sddm[1622]: Socket server stopped.
Apr 23 12:45:38 pc7 sddm[1622]: Removing display ":0" ...
Apr 23 12:45:38 pc7 sddm[1622]: Adding new display on vt 7 ...
Apr 23 12:45:38 pc7 sddm[1622]: Display server starting...
Apr 23 12:45:38 pc7 sddm[1622]: Running: /usr/bin/X -nolisten tcp -auth /run/sddm/{b86
Apr 23 12:45:38 pc7 sddm-helper[1718]: [PAM] Closing session
Apr 23 12:45:38 pc7 sddm-helper[1718]: pam_unix(sddm-greeter:session): session closed 
Apr 23 12:45:38 pc7 sddm-helper[1718]: [PAM] Ended.
Apr 23 12:45:38 pc7 systemd-logind[1600]: Removed session 1.
Apr 23 12:45:39 pc7 systemd[1]: Stopping User Manager for UID 474...
Apr 23 12:45:39 pc7 systemd[1723]: Stopping D-Bus User Message Bus...
Apr 23 12:45:39 pc7 systemd[1723]: Stopped target Default.
Apr 23 12:45:39 pc7 systemd[1723]: Stopped D-Bus User Message Bus.
Apr 23 12:45:39 pc7 systemd[1723]: Stopped target Basic System.
Apr 23 12:45:39 pc7 systemd[1723]: Stopped target Timers.
Apr 23 12:45:39 pc7 systemd[1723]: Stopped target Sockets.
Apr 23 12:45:39 pc7 systemd[1723]: Stopped target Paths.
Apr 23 12:45:39 pc7 systemd[1723]: Closed D-Bus User Message Bus Socket.
Apr 23 12:45:39 pc7 systemd[1723]: Reached target Shutdown.
Apr 23 12:45:39 pc7 systemd[1723]: Starting Exit the Session...
Apr 23 12:45:39 pc7 systemd[1723]: Received SIGRTMIN+24 from PID 1774 (kill).
Apr 23 12:45:39 pc7 systemd[1726]: pam_unix(systemd-user:session): session closed for 
Apr 23 12:45:39 pc7 systemd[1]: Stopped User Manager for UID 474.
Apr 23 12:45:39 pc7 systemd[1]: Removed slice User Slice of sddm.
Apr 23 12:45:39 pc7 systemd-coredump[1766]: Process 1632 (X) of user 0 dumped core.
Apr 23 12:45:39 pc7 sddm[1622]: Running display setup script  "/etc/X11/xdm/Xsetup"
Apr 23 12:45:39 pc7 sddm[1622]: Display server started.

I see this on two computers with different Nvidia hardware and nouveau 1.0.14-2.1. The previous package 1.1 works. I also noted that the code has not changed. Compiler or build options change?

I'd be willing to help with debugging but I do not know where to start.
Comment 14 Antonio Larrosa 2017-04-26 11:19:57 UTC
(In reply to Mark Draheim from comment #11)
> I have this problem on all my computers with nouveau but not on my laptops
> with intel. The sddm test only shows ABORTED. Autologin loops endlessly.

The test-mode shouldn't only show "ABORTED", so I would follow that route and try to debug it. Can you start it with gdb and attach the backtrace at that abort?

Also, can you try running:

QMLSCENE_DEVICE=softwarecontext sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE

to check if it helps?
Comment 15 Mark Draheim 2017-04-26 14:41:20 UTC
According to this thread in the forums, the 1.0.15 nouveau package from X11 repo does not have this problem

https://forums.opensuse.org/showthread.php/524401-Last-update-sent-login-screen-to-infinite-loop?p=2820992#post2820992

So, if previous does not show the prob and next also works, maybe just push next through to release :-D

Anyway, this is current 1.0.14-2.1


(gdb) run
Starting program: /usr/bin/sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGABRT, Aborted.
0x00007ffff5084ff0 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff5084ff0 in raise () from /lib64/libc.so.6
#1  0x00007ffff50866ea in abort () from /lib64/libc.so.6
#2  0x00007ffff5a30c81 in QMessageLogger::fatal(char const*, ...) const ()
   from /usr/lib64/libQt5Core.so.5
#3  0x00007fffedfeca0e in QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*) () from /usr/lib64/libQt5XcbQpa.so.5
#4  0x00007fffedfefc1e in QXcbIntegration::QXcbIntegration(QStringList const&, int&, char**) () from /usr/lib64/libQt5XcbQpa.so.5
#5  0x00007fffee2b04dd in ?? () from /usr/lib64/qt5/plugins/platforms/libqxcb.so
#6  0x00007ffff615193d in QPlatformIntegrationFactory::create(QString const&, QStringList const&, int&, char**, QString const&) () from /usr/lib64/libQt5Gui.so.5
#7  0x00007ffff615fc9a in QGuiApplicationPrivate::createPlatformIntegration() ()
   from /usr/lib64/libQt5Gui.so.5
#8  0x00007ffff616072d in QGuiApplicationPrivate::createEventDispatcher() ()
   from /usr/lib64/libQt5Gui.so.5
#9  0x00007ffff5c2007f in QCoreApplicationPrivate::init() ()
   from /usr/lib64/libQt5Core.so.5
#10 0x00007ffff616215f in QGuiApplicationPrivate::init() ()
   from /usr/lib64/libQt5Gui.so.5
#11 0x00007ffff6162df4 in QGuiApplication::QGuiApplication(int&, char**, int) ()
   from /usr/lib64/libQt5Gui.so.5
#12 0x000000000042ffd7 in SDDM::GreeterApp::GreeterApp(int&, char**) ()
#13 0x00000000004174b7 in main ()
Comment 16 Mark Draheim 2017-05-02 10:13:37 UTC
problem no longer present in current TW. Package nouveau-1.0.15-1.1 works.
Comment 17 Mark Draheim 2017-05-02 14:38:31 UTC
no more problems with current TW as of 20170502. Tested on two boxes that showed the problem.