GNOME Bugzilla – Bug 741766
gdm XDMCP pinging feature is broken
Last modified: 2018-05-24 11:05:16 UTC
<jwhite_> found what appears to be a bug in gdm with xdmcp. <halfline> looks like a legitimate bug... maybe fall out from when the slave was merged into the main process a few months back? <jwhite_> testing to see if setting PingIntervalSeconds is a work around; not sure what functionality we lose with that change <halfline> should be fine to set the ping interval to 0 <halfline> the point of the ping interval is to drop non-responsive clients <halfline> but looking, we don't seem to ever reset the alarm after that one place, so the ping code should probably be fixed or removed
Created attachment 293060 [details] [review] defaults: set default ping interval to 0 We apparently never reset the ping alarm() so a non-0 ping interval means the session will unconditionally be killed after the ping interval. For now set the ping interval to 0.
Comment on attachment 293060 [details] [review] defaults: set default ping interval to 0 (pushing this work around for now, until we can investigate further) Attachment 293060 [details] pushed as ed45a1d - defaults: set default ping interval to 0
alarm() is an awful function to use for setting up the ping alarms. Doubly so now that the alarm is getting set in the main pid instead of the individual slave pids (which we got rid of a few months ago). We should stop using alarm(), and just use g_timeout_add instead. Of course, we also need to reset the timeout when the client talks to us and clear the timeout later.
(to be clear, alarm() causes SIGALRM to be sent to the process and kills it. killing the slave is a sufficient way to shutdown non-responsive client connections, but killing the main daemon process now that there is no slave is lunacy)
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gdm/issues/213.