Subject: bug#35408: External monitor not working with GDM

From: Ben Sturmfels <[email-masked]>
Date: Thu, 25 Apr 2019 21:41:27 +1000

Hi Ludovic,

On Thu, 2019-04-25 at 11:08 +0200, Ludovic Courtès wrote:
> 
> Ben Sturmfels <[email-masked]> skribis:
> 
> > I was previously using a 24" Samsung external monitor with my X200
> > Guix
> > System via VGA. Since the switch to GDM, I no longer seem to be
> > able
> > connect this monitor. When I do, the laptop screen just keeps
> > flashing.
> 
> So the GDM login screen never shows up, right?

I'm thoroughly confused now. GDM definitely *was* working with the
laptop screen only, but now when I reconfigure it or choose an old Grub
entry, I can't get to the login screen with either external monitor or
the laptop. In both cases the console loops showing a message something
like:

New session c1 of user gdm.
Removed session c1.
.
.
.
New session c506 of user gdm.
Removed session c506.

I was able to choose an older system from the Grub menu with Slim
though.

> > Any suggestions on how to troubleshoot this?

> Could you share /var/lib/gdm/.local/share/xorg/Xorg.0.log?

I had a look at this file, but was suspicious that it wasn't fresh, so
I tried deleting it and it didn't come back. I found the following in
/var/log/messages:

Apr 25 20:30:54 localhost gdm: GLib: g_variant_new_string: assertion
'string != NULL' failed 
Apr 25 20:30:54 localhost gdm: Child process -15047 was already dead. 
Apr 25 20:30:54 localhost gdm: Child process 15044 was already dead. 
Apr 25 20:30:54 localhost gdm: Unable to kill session worker process 
Apr 25 20:30:54 localhost gdm: gdm_session_set_environment_variable:
assertion 'value != NULL' failed 
Apr 25 20:30:54 localhost gdm: Child process -15054 was already dead. 
Apr 25 20:30:54 localhost gdm: Child process 15051 was already dead. 
Apr 25 20:30:54 localhost gdm: Unable to kill session worker process 
Apr 25 20:30:54 localhost gdm: gdm_session_set_environment_variable:
assertion 'value != NULL' failed 
Apr 25 20:30:54 localhost gdm: Child process -15061 was already dead. 
Apr 25 20:30:54 localhost gdm: Child process -15061 was already dead. 
Apr 25 20:30:54 localhost gdm: gdm_session_set_environment_variable:
assertion 'value != NULL' failed 
Apr 25 20:30:54 localhost gdm: Child process -15068 was already dead. 
Apr 25 20:30:54 localhost gdm: Child process -15068 was already dead. 
Apr 25 20:30:54 localhost gdm: gdm_session_set_environment_variable:
assertion 'value != NULL' failed 
Apr 25 20:30:54 localhost gdm: Child process -15075 was already dead. 
Apr 25 20:30:54 localhost gdm: Child process -15075 was already dead. 
Apr 25 20:30:54 localhost gdm: gdm_session_set_environment_variable:
assertion 'value != NULL' failed 
Apr 25 20:30:54 localhost gdm: GLib: g_variant_new_string: assertion
'string != NULL' failed 
Apr 25 20:30:54 localhost gdm: Child process -15082 was already dead. 
Apr 25 20:30:54 localhost gdm: Child process 15079 was already dead. 
Apr 25 20:30:54 localhost gdm: Unable to kill session worker process 
Apr 25 20:30:55 localhost gdm: gdm_session_set_environment_variable:
assertion 'value != NULL' failed 
Apr 25 20:30:55 localhost gdm: Child process -15089 was already dead. 
Apr 25 20:30:55 localhost gdm: Child process -15089 was already dead. 
Apr 25 20:30:55 localhost gdm: gdm_session_set_environment_variable:
assertion 'value != NULL' failed 
Apr 25 20:30:55 localhost gdm: GLib: g_variant_new_string: assertion
'string != NULL' failed 
Apr 25 20:30:55 localhost gdm: Could not start command
'/gnu/store/072cd7r7zx2fgp1v16bv2si5s435lwkj-gdm-3.26.2.1/libexec/gdm-
session-worker': Too many open files 
Apr 25 20:30:55 localhost gdm: GLib: g_child_watch_add_full: assertion
'pid > 0' failed 
Apr 25 20:30:55 localhost gdm: Child process -15096 was already dead. 
Apr 25 20:30:55 localhost gdm: Child process 15093 was already dead. 
Apr 25 20:30:55 localhost gdm: Unable to kill session worker process 

> FWIW I have been using GDM with an external monitor just fine: the
GDM user selection box appears on the laptop screen and the other
screen just displays the background image.

That's good, sounds like it can't be anything major then. I'll keep
testing.

Regards,
Ben