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

From: Danny Milosavljevic <[email-masked]>
Date: Thu, 25 Apr 2019 14:16:39 +0200

Hi,

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

> Apr 25 20:30:54 localhost gdm: gdm_session_set_environment_variable:
> assertion 'value != NULL' failed 

Yeah, that one again.  It might make sense to patch that so the assertion
actually prints name and value passed.

You can also set "debug"'s "Enable=true" in gnu/services/xorg.scm , in
gdm-configuration-file , but it will only help in a limited way here.

> 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 

WTF.  Parts of gdm have full root privileges and for it to contain
simple mistakes like that is worrying.

> Apr 25 20:30:55 localhost gdm: GLib: g_child_watch_add_full: assertion
> 'pid > 0' failed 

gdm should have checked for errors before calling g_child_watch_add_full.

> 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 

WTF.  I hope they don't kill the same pid twice and thus risk killing
innocent bystanders that happen to reuse the pid of the dead process.

common/gdm-common.c gdm_signal_pid ... yes, they do.