After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 741766 - gdm XDMCP pinging feature is broken
gdm XDMCP pinging feature is broken
Status: RESOLVED OBSOLETE
Product: gdm
Classification: Core
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: GDM maintainers
GDM maintainers
Depends on:
Blocks:
 
 
Reported: 2014-12-19 14:40 UTC by Ray Strode [halfline]
Modified: 2018-05-24 11:05 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
defaults: set default ping interval to 0 (1.67 KB, patch)
2014-12-19 14:40 UTC, Ray Strode [halfline]
committed Details | Review

Description Ray Strode [halfline] 2014-12-19 14:40:25 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
Comment 1 Ray Strode [halfline] 2014-12-19 14:40:27 UTC
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 2 Ray Strode [halfline] 2014-12-19 14:41:33 UTC
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
Comment 3 Ray Strode [halfline] 2014-12-19 14:45:01 UTC
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.
Comment 4 Ray Strode [halfline] 2014-12-19 14:46:22 UTC
(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)
Comment 5 GNOME Infrastructure Team 2018-05-24 11:05:16 UTC
-- 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.