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 599683 - xdmcp Queries from Older software (e.g. XFree86) fail
xdmcp Queries from Older software (e.g. XFree86) fail
Status: RESOLVED FIXED
Product: gdm
Classification: Core
Component: general
2.26.x
Other Linux
: Normal normal
: ---
Assigned To: GDM maintainers
GDM maintainers
Depends on:
Blocks:
 
 
Reported: 2009-10-26 18:38 UTC by af
Modified: 2010-06-16 22:49 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch workarounding the problem: BadValue ... integer parameter out of range for operation (2.06 KB, patch)
2009-10-26 18:38 UTC, af
none Details | Review

Description af 2009-10-26 18:38:40 UTC
Created attachment 146285 [details] [review]
patch workarounding the problem: BadValue ... integer parameter out of range for operation

xdmcp session queries fail with a message in /var/log/gdm/...-slave.log like
this:

X Error of failed request:  BadValue (integer parameter out of range for
operation)
  Major opcode of failed request:  109 (X_ChangeHosts)
  Value in failed request:  0xe
  Serial number of failed request:  2
  Current serial number in output stream:  2

and the requesting software typically terminates or retries infinitely.
Querying software, that has been tested to fail: XFree86, Xming, Cygwin-Xwin

Reason: For reference please see here:
https://bugzilla.redhat.com/show_bug.cgi?id=496882#c16 and
https://bugzilla.redhat.com/show_bug.cgi?id=496882#c19

In gdm-slave.c XAddHosts is called with FamilyServerInterpreted, what might 
fail with X11 Servers of older version . This failure seems to be no real
problem, so this error can be ignored. Ignoring X11 errors is a bit tricky.
The attached patch gdm-2.26.1-ign-xaddhost-fail.patch does this job.

To apply this patch, put it to the SOURCES directory and add two appropriate
lines to the gdm.spec file e.g.:

Patch30: gdm-2.26.1-ign-xaddhost-fail.patch
...
%patch30 -p1 -b .ign-xaddhost-fail

For fedora 11 and i586 the RPM can be downloaded here, if you trust me:

http://www.muc.de/~af/gdm-2.26.1-13.1.fc11.i586.rpm

The value FamilyServerInterpreted for the family member in
the XHostAddress argument of XAddHosts seems to have never
existed in XFree86 (what is quite likely running on an IGEL)
and made it's way into Xorg some time before X11R6.7 (cannot
determine).

Anyway hardcoding this without catching the case, that the
call might fail will lead to problems with older X server
implementations including all XFree86 programs, that don't
understand the value of FamilyServerInterpreted (== 5).

A warning might be issued to the logs, but that's probably all,
that happens.

No objections to modify my patch in whatever way to make it work.
The main thing seems to me, that the problem is understood and
gdm can be made to cooperate with older and newer software.
Comment 1 William Jon McCann 2010-06-16 22:49:37 UTC
Thanks for the report.  I've fixed this in master and 2-30 a slightly different way.

commit efc2fc61e70d7ab43d356d8b227c7ecda4f7a10c
Author: William Jon McCann <jmccann@redhat.com>
Date:   Wed Jun 16 17:50:48 2010 -0400

    Trap errors for XAddHosts
    
    Apparently this can fail on older systems.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=599683