Further investigation: diff -ru orig/gdm-3.26.2.1/daemon/gdm-session.c gdm-3.26.2.1/daemon/gdm-session.c --- orig/gdm-3.26.2.1/daemon/gdm-session.c 1970-01-01 01:00:00.000000000 +0100 +++ gdm-3.26.2.1/daemon/gdm-session.c 2019-04-21 10:58:31.211164558 +0200 @@ -2483,6 +2483,10 @@ const char *value) { g_return_if_fail (key != NULL); + if (value == NULL) { + g_warning ("XXX gdm: value == NULL for key == %s", key); + value = ""; + } g_return_if_fail (value != NULL); g_hash_table_replace (self->priv->environment, Yields: Apr 21 11:23:57 localhost gdm: XXX gdm: value == NULL for key == PATH Apr 21 11:23:57 localhost gdm: Child process -1384 was already dead. Apr 21 11:23:57 localhost gdm: Child process 1381 was already dead. Apr 21 11:23:57 localhost gdm: Unable to kill session worker process and endless loop.